我在Oracle表中有一个日期类型列。
据我所知,它保存着关于小时、分钟和秒的信息。我需要得到这个专栏的一部分。目前我正在使用此结构:

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

有没有比这更优雅(更短)的方法呢?最好是更高效的时间/cpu,以便由oracle计算它。
谢谢您。

最佳答案

嗯。这个怎么样?

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

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

10-05 21:12