2009-11-18 41 views
20

Tôi muốn chuyển đổi chuỗi tiếp theo cho đến nay:String để ngày trong Oracle với mili giây

2004-09-30 23:53:48,140000000 

tôi đã cố gắng:

to_date('#', 'YYYY-MM-DD HH24:MI:SS,FF9') 

Nhưng PL/SQL giữ ném lỗi này:

ORA-01821: date format not recognized. 

FF9 không đúng đối với Oracle, có đề xuất gì không?

Trả lời

53

Oracle chỉ lưu trữ các phân số tối đa trong một trường DATE.

Sử dụng TIMESTAMP thay vì:

SELECT TO_TIMESTAMP('2004-09-30 23:53:48,140000000', 'YYYY-MM-DD HH24:MI:SS,FF9') 
FROM dual 

, có thể đúc nó vào một DATE thì:

SELECT CAST(TO_TIMESTAMP('2004-09-30 23:53:48,140000000', 'YYYY-MM-DD HH24:MI:SS,FF9') AS DATE) 
FROM dual 
3

Tôi không nghĩ rằng bạn có thể sử dụng phân đoạn giây với to_date hoặc loại NGÀY trong Oracle. Tôi nghĩ bạn cần to_timestamp trả về kiểu TIMESTAMP.

Các vấn đề liên quan