我在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');
有人可以帮我吗?
答案 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;
从技术上讲,您可以在逗号后使用非零值,因此如果要获得正确但未截断的值,请使用时间戳日期类型。