Oracle当前日期到小时

Sub*_*lik 1 sql oracle sysdate

我想用当前时间得到日期.

使用trunc(sysdate)给了我们类似的东西2017-06-16 00:00:00

但是,我也想要当前时间:

2017-06-16 10:00:00
2017-06-16 11:00:00
Run Code Online (Sandbox Code Playgroud)

等等.

我希望它是一个日期(而不是char),因为我需要它与日期列进行比较.

date_column <= day_with_hour
Run Code Online (Sandbox Code Playgroud)

Ale*_*ole 7

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
Run Code Online (Sandbox Code Playgroud)

日期格式模型也在文档中,并允许其中的一部分trunc().

所以你的查询将使用:

date_column <= trunc(sysdate, 'HH')
Run Code Online (Sandbox Code Playgroud)