Oracle当前日期到小时

时间:2017-06-16 08:12:56

标签: sql oracle sysdate

我想用当前时间来获取日期。

使用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

1 个答案:

答案 0 :(得分:7)

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')