【发布时间】:2021-03-05 15:50:13
【问题描述】:
我正在尝试创建一个查询,该查询将仅查询日期范围之间且仅位于一天中特定时间的行。
只要时间范围在同一天,我就可以查询这个,但在我的应用程序中不能保证这一点(时间范围可能跨越日期边界)。例如:
SELECT * FROM data
WHERE data.utc BETWEEN '2021-01-01' AND '2022-01-01'
AND data.utc::time BETWEEN time '16:00:00' AND time '22:00:00'
仅使用 SQL 是否可以同时支持这两种情况?
我可能需要查询的情况: '16:00:00' --> 同一天的'22:00:00' AND '22:00:00' --> '04:00:00' 跨越日界
我可以在应用程序中做一些事情来计算 WHERE 条件,但想知道是否有更简洁的 SQL 方法来执行此操作。
非常感谢
【问题讨论】:
-
你不能只结合你的检查来做日期和时间吗?在使用之间:'2021-01-01 16:00:00'(不确定是否使用 postgresql,但我与您合作过的其他人可以这样做)
标签: sql database postgresql time