Oracle:计算DATE类型列的日期分数

时间:2016-09-16 18:19:15

标签: database oracle date-formatting

我在Oracle表中有一个DATE类型列。 据我所知,它包含有关小时,分钟和秒的信息。我需要获得本专栏的一天。目前我正在使用这种结构:

TO_CHAR(p.snaptime, 'HH24')/24 + TO_CHAR(p.snaptime, 'MI')/1440 + TO_CHAR(p.snaptime, 'SS')/86400

是否有更优雅(=更短)的方式来获得相同的?最好是由Oracle计算它的时间/ CPU效率更高。 谢谢。

1 个答案:

答案 0 :(得分:6)

嗯。怎么样?

select (p.snaptime - trunc(p.snaptime))

两个日期的差异是一个数字。在这种情况下,数字将代表一天中的时间。如果你想在其他单位中使用它,那么你可以通过乘法(* 24表示小时数,* 24 * 60表示分钟数,* 24 * 60 * 60表示秒数)。