我想只用当前时间来获取日期。
使用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
该trunc()
函数采用第二个可选参数,默认将'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
日期格式模型也在文档中,并且允许使用trunc()
其中的一个子集。
所以您的查询将使用:
date_column <= trunc(sysdate, 'HH')