sql - 如何仅按时间部分比较日期时间列
问题描述
我需要编写 SQL 查询,它将为我提供 datetime 值的日期与 datetime 值Creation_date
的日期相同的所有行Status_date
。此外,此日期时间值的时间部分必须在此查询的 where 子句中 - 值的确切时间部分Status_date
需要在值的时间部分Creation_date
和凌晨 4 点之间,时间部分也Creation_date
需要从午夜到凌晨 2 点。
我想我知道第一部分
select *
from a_orders
where trunc(Creation_date)=trunc(Status_date) and ??
桌子:
Creation_date Status_date
1.2019-08-26 00:02:10 2019-08-26 08:35:02
2.2019-08-26 00:02:20 2019-08-26 09:15:18
3.**2019-08-26 00:02:41 2019-08-26 00:20:08**
4.**2019-08-26 00:02:48 2019-08-26 00:20:08**
5.2019-07-29 00:05:28 2019-07-30 00:40:29
从上表中,我只需要第 3 行和第 4 行就可以在我的结果中。
提前致谢!
解决方案
这是一个有点冗长的查询,但如果你使用的是 Oracle,试试这个,看看它是否有效
where trunc(Creation_date)=trunc(Status_date)
and Creation_date between to_date(to_char(d.Creation_date,'MM/DD/YYYY') || ' 00:00','MM/DD/YYYY HH24:MI') and to_date(to_char(d.Creation_date,'MM/DD/YYYY') || ' 02:00','MM/DD/YYYY HH24:MI')
and Status_date between d.Creation_date and to_date(to_char(d.Creation_date,'MM/DD/YYYY') || ' 04:00','MM/DD/YYYY HH24:MI');
推荐阅读
- c# - 实体框架核心异常:没有为实体类型“歌曲”找到合适的构造函数
- visual-studio-2019 - 如何 git merge ,其中很少有人手动,然后剩下的(数百个)只需使用官方构建版本
- reactjs - 在 Context Provider 中使用 useEffect 设置两个 Hook 状态
- javascript - 如何将 XSLT 变量传递给 JS 函数?
- sql-server - 来自 resourceType 和 Department 的团队经理 ID
- vue.js - 取消选中单选按钮 vuejs
- apache-flink - 在 Flink 数据流中加入元数据的最佳方法是什么?
- python - 查找连接到顶点的面
- html - 无法使用带有样式组件的 flexbox 居中页面
- bison - 为什么 Bison 可以将“错误”项减少为空规则