我有完整的约会(有时间)。 但我想从约会开始只有几毫秒。
请告诉我一行解决方案
例如: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;
但我没有成功。
答案 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