首页 > 解决方案 > 我需要将日期更改为 sysdate 并保持时间,因为它来自下面的查询

问题描述

select count (*)
from LOGIN 
where LOGTIMEIN >= to_date('14/07/2020 15:30:00', 'dd/mm/yyyy hh24:mi:ss')

我希望日期部分(2020 年 7 月 14 日)为 sysdate,并且时间不应更改。我试过 sysdate 但它没有用

标签: oracle11goracle10g

解决方案


你可以在今天早上得到午夜trunc(sysdate),然后加上 15 小时 30 分钟,或者作为一天的一小部分:

where LOGTIMEIN >= trunc(sysdate) + (15.5/24)

或作为间隔:

where LOGTIMEIN >= trunc(sysdate) + interval '15:30' hour to minute

这些生成的快速演示:

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

select trunc(sysdate) + (15.5/24) from dual;

| TRUNC(SYSDATE)+(15.5/24) |
| :----------------------- |
| 2020-07-17 15:30:00      |

select trunc(sysdate) + interval '15:30' hour to minute from dual

| TRUNC(SYSDATE)+INTERVAL'15:30'HOURTOMINUTE |
| :----------------------------------------- |
| 2020-07-17 15:30:00                        |

db<>小提琴


推荐阅读