对不起我的英语。我为上一篇帖子道歉(我不知道发布图片是不行的)。
我的数据库中有一个日期时间列。
start
2021-06-28 08:30:00
2021-06-29 08:00:00
2021-06-30 08:00:00
我需要按时间选择。不管哪一天。我需要选择时间等于 8:00 的所有记录。
也就是说,我应该带来结果:
2021-06-29 08:00:00
2021-06-30 08:00:00
我尝试使用 HOUR(start) ='08:00' 子句,但它没有解决它,因为它适用于整数。有谁知道我怎么做这个查询?
答案 0 :(得分:1)
@astentx 正在引用具有正确解决方案的帖子。特别是您正在寻找的:
WHERE TIME(`start`) = '08:00:00'
答案 1 :(得分:0)
这个怎么样?
WITH
indata(ts) AS (
SELECT TIMESTAMP '2021-06-28 08:30:00'
UNION ALL SELECT TIMESTAMP '2021-06-29 08:00:00'
UNION ALL SELECT TIMESTAMP '2021-06-30 08:00:00'
)
SELECT * FROM indata WHERE CAST(ts AS TIME)='08:00:00';
-- out ts
-- out ---------------------
-- out 2021-06-29 08:00:00
-- out 2021-06-30 08:00:00