sql - 使用带有日期和时间的新创建列在 SQL 中提取数据
问题描述
我正在使用 Oracle SQL Developer 从数据库中提取数据。有一个时间戳列采用这种格式:02-SEP-19 10.31.34.315000000 AM 但我想创建 2 个新列,一个用于日期(02/09/19),一个用于 24 小时格式的时间。
有没有办法将整个表与新创建的列一起提取?我需要 2 个附加列与日期和时间的原因是与另一组数据进行比较。
这将使我能够提取具有特定日期范围和时间的数据。例如,从 01-SEP-19 到 30-SEP-19 以及从 08:00:00 到 10:00:00 的所有记录。
Select *
From Table
Where CRT_DTTM > '02-SEP-19' and CRT_DTTM < '03-SEP-19'
order by CRT_DTTM ASC
解决方案
例如,从 01-SEP-19 到 30-SEP-19 以及从 08:00:00 到 10:00:00 的所有记录。
您不需要单独的列,只需在查询中包含时间提取逻辑即可。维护另一列仅存储时间效率低下。
Select *
From Table
Where CRT_DTTM >= DATE '2019-09-01' and CRT_DTTM < DATE '2019-09-30'
AND extract(hour from CRT_DTTM) >=8 and extract(hour from CRT_DTTM) < 10
order by CRT_DTTM ASC
如果您想要更具体的时间,只需使用TO_TIMESTAMP
您希望的开始和结束时间。
例如:
WHERE CRT_DTTM >= TO_TIMESTAMP('01-SEP-2019 08:20:00','dd-mon-yyyy hh24:mi:ss')
..
..
推荐阅读
- json - JSON 错误:无法读取数据,因为它的格式不正确
- flutter - Flutter:有条件地显示 BottomNavigationBar
- ios - 如何更新本地 JSON 文件 Swift ios 13
- angular - 是否可以更改角度日期选择器多年开始视图的视图范围?
- anaconda - 执行“conda env”时出现“解决环境:失败”错误
- java - 如何使用 Java 设置 AdUnitId?
- rust - Rust 结构类型到整数的映射
- c# - Xamarin android 分组通知未被可折叠摘要取代
- flutter - 在颤振的初始化程序中只能访问静态成员
- python - 具有不同窗口规范的链式火花列表达式产生低效的 DAG