Oracle转换字符到日期

时间:2017-08-15 09:01:47

标签: sql oracle oracle-sqldeveloper

我在oracle表中有以下日期:

'2017-08-01 00:00:00,000000000'

我想将此转换为使用以下内容的日期,但我不知道如何处理零?!

.
.
.
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');

有人可以帮我吗?

2 个答案:

答案 0 :(得分: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')

答案 1 :(得分:0)

一般来说,这个值不是日期而是时间戳,所以我会使用以下转换:

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

从技术上讲,您可以在逗号后使用非零值,因此如果要获得正确但未截断的值,请使用时间戳日期类型。