如何从Oracle中的日期提取毫秒?

时间:2016-03-16 08:36:26

标签: sql oracle11g timestamp

我有完整的约会(有时间)。 但我想从约会开始只有几毫秒。

请告诉我一行解决方案

例如:date= 2016/03/16 10:45:04.252 我想要这个答案= 252

我尝试使用此查询。

SELECT ADD_MONTHS(millisecond, -datepart('2016/03/16 10:45:04.252', millisecond),
     '2016/03/16 10:45:04.252') FROM DUAL;

但我没有成功。

2 个答案:

答案 0 :(得分:7)

  

我有完整的约会(有时间)

这只能使用timestamp来完成。虽然Oracle的date确实包含时间,但它只存储秒,而不是毫秒。

要从时间戳获取小数秒,请使用to_char()并将其转换为数字:

select to_number(to_char(timestamp '2016-03-16 10:45:04.252', 'FF3'))
from dual;

答案 1 :(得分:0)

SELECT 
TRUNC((L.OUT_TIME-L.IN_TIME)*24)           ||':'||
TRUNC((L.OUT_TIME-L.IN_TIME)*24*60)        ||':'||
ROUND(CASE WHEN ((L.OUT_TIME-L.IN_TIME)*24*60*60)>60 THEN ((L.OUT_TIME-L.IN_TIME)*24*60*60)-60 ELSE ((L.OUT_TIME-L.IN_TIME)*24*60*60) END ,5) Elapsed
FROM XYZ_TABLE