【发布时间】:2020-07-08 03:14:31
【问题描述】:
我试图在 PL/SQL 开发人员的 oracle 上运行以下查询,以选择当前时间和一天结束之间的时间段列表:
SELECT T.VISIT_DATE
FROM REGISTRATION.VU_SCHEDULE T
WHERE T.VISIT_DATE BETWEEN TO_DATE(SYSDATE, 'DD-MON-YYYY HH24:MI:SS')
AND TO_DATE('27-MARCH-2020 23:59:59', 'DD-MON-YYYY HH24:MI:SS')
ORDER BY VISIT_DATE
但它给了我一整天而不是当前时间的结果
VISIT_DATE
1 3/27/2020 9:00:00 AM
2 3/27/2020 9:15:00 AM
3 3/27/2020 9:30:00 AM
4 3/27/2020 9:45:00 AM
5 3/27/2020 10:00:00 AM
6 3/27/2020 10:15:00 AM
7 3/27/2020 10:30:00 AM
8 3/27/2020 10:45:00 AM
9 3/27/2020 11:00:00 AM
10 3/27/2020 11:15:00 AM
11 3/27/2020 11:30:00 AM
12 3/27/2020 11:45:00 AM
例如,如果当前时间是上午 11:00,那么它应该给出当前时间的结果。
我试过 trunc(sysdate) 但它不起作用
注意:
条件必须具有从现在到一天结束的日期和时间格式。
【问题讨论】:
-
从不,永远不要对已经是日期的值调用
to_date()。这将首先将date值转换为varchar,然后将varchar转换回最初的date。
标签: sql oracle date datetime plsql