sql - sysdate 格式在 where 子句中不起作用
问题描述
我正在尝试在 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) 但它不起作用
笔记:
条件必须具有从现在到一天结束的日期和时间以及格式。
解决方案
必须有日期和时间从现在到一天结束的格式。
你可以这样做:
where t.visit_date >= sysdate and t.visit_date < trunc(sysdate) + 1
理由:
sysdate
为您提供当前日期/时间,表示间隔的下限trunc(sysdate)
是当天的开始时间(今天午夜),您可以将其添加1
到第二天的开始时间;这是范围的(独占)上限
to_date()
请注意,应用到function是没有意义的sysdate
,它会产生一个日期。
推荐阅读
- excel - 如何删除excel中的多个空单元格
- jquery - highcharts 样条图 - 大数据应仅绘制特定数据
- java - Jenkins 共享库无法将 Java 类从 src 导入到 vars 脚本
- c++ - 如何声明线程本地的静态类数据成员?
- automapper - 如何对可能为空的属性应用 AutoMapper ValueConverters
- powershell - Set-AzureADUserLicense:无法绑定参数“AssignedLicenses”
- python - InvalidArgumentError: indices[82,0] = 69687 不在 [0, 69054)
- git - 在 git 中从远程创建功能分支的最佳方法是什么?
- java - 编写一个程序,在计算机和用户之间玩一个简单的骰子游戏。当程序运行时,一个循环应该重复 10 次
- node.js - TypeScript:在节点中将 XML 解析为 JSON 会丢失相同名称标签的顺序