2016-09-16 49 views
1

我在Oracle表中有一個DATE類型的列。 據我瞭解,它擁有有關小時,分鐘和秒鐘的信息。我需要得到這一欄的一小部分。目前我正在使用這種結構:Oracle:計算DATE類型列的日分數

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

是否有更優雅(=更短)的方式來獲得相同的? Oracle計算它的時間/ CPU效率更高。 謝謝。

回答

6

嗯。這個怎麼樣?

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

兩個日期的差異是一個數字。在這種情況下,這個數字代表一天的時間。如果你想在某些其他單位中使用,可以通過乘法(* 24小時,* 24 * 60分鐘,* 24 * 60 * 60秒)進行轉換。