2017-06-16 42 views
1

我想僅獲取當前小時的日期。Oracle中的當前日期到小時

使用trunc(sysdate)讓我們像2017-06-16 00:00:00

但是,我想當前時間以及:

2017-06-16 10:00:00 
2017-06-16 11:00:00 

等。

我希望它是一個日期(而不是字符),因爲我需要它與日期列進行比較。

date_column <= day_with_hour 

回答

6

The trunc() function需要一秒鐘可選參數,以截斷時間午夜其默認爲'DD'。您可以使用'HH'代替(或'HH24'如果你喜歡與你在其他地方使用其他格式的一致性 - 它不影響結果),以獲得你想要的東西:

alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS'; 

select sysdate, trunc(sysdate, 'HH') from dual; 

SYSDATE    TRUNC(SYSDATE,'HH') 
------------------- ------------------- 
2017-06-16 09:27:43 2017-06-16 09:00:00 

日期格式模型are also in the documentation,和這些的一個子集是allowed for trunc()

所以,你的查詢將使用:

date_column <= trunc(sysdate, 'HH') 
+0

非常感謝@Alex。正是我一直在尋找的。 –

相關問題