2017-08-15 76 views
0

我在Oracle表以下日期:甲骨文將char轉換爲日期

「2017年8月1日00:00:00,000000000」

我想將其轉換爲日期,我現在用的以下,但我不知道如何處理zeroes?!

. 
. 
. 
T.EXECUTION_LOCAL_DATE_TIME 
between to_date('2017-08-01 00:00:00,000000000', 'yyyy-mm-dd hh:mi:ss') 
and to_date('2017-08-10 00:00:00,000000000', 'yyyy-mm-dd hh:mi:ss'); 

任何人都可以幫助我嗎?

回答

1

Oracle日期不支持毫秒。假設你EXECUTION_LOCAL_DATE_TIME列是一個日期,然後下面的比較是最好的,你可以這樣做:

T.EXECUTION_LOCAL_DATE_TIME 
BETWEEN TO_DATE('2017-08-01 00:00:00', 'yyyy-mm-dd hh:mi:ss') AND 
     TO_DATE('2017-08-10 00:00:00', 'yyyy-mm-dd hh:mi:ss'); 

如果你想爲一個文本字符串毫秒轉換爲一個時間戳,您可以使用這樣的事情:

TO_TIMESTAMP ('2017-08-01 00:00:00,000000000', 'yyyy-mm-dd hh:mi:ss,ff') 
+0

','vs'.''分隔符在您的to_timestamp – JohnHC

+0

謝謝,它現在可以工作。 –

0

一般在沒有一個日期而言這個值,而是一個時間戳,所以我會用下面的轉換:

select to_timestamp('2017-08-01 00:00:00,000000000', 'yyyy-mm-dd hh24:mi:ss,ff6') 
from dual; 

從技術上講,你可以有後無零逗號,所以如果你想得到正確的但不被截斷的值使用時間戳日期類型。