关于sql:Oracle如何从日期中提取毫秒?

How to extract millisecond from date in Oracle?

我有完整的日期(有时间)。
但我只想从日期开始毫秒。

请告诉我一个解决方案

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

我尝试使用这个查询。

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

但我没有成功。


i have full date (with time)

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

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

1
2
SELECT to_number(to_char(TIMESTAMP '2016-03-16 10:45:04.252', 'FF3'))
FROM dual;


1
2
3
4
5
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