sqlite 我如何才能在一天中的同一时间选择多天?

o75abkj4  于 2022-11-14  发布在  SQLite
关注(0)|答案(3)|浏览(202)

utc time created是一个datetime字段,表示在每小时更新的表中创建条目的时间。每天包含24个条目。
我想查询一组日期的相同时间(可能想要10/1-10/10的所有下午4点记录),但不想要该日期范围内其他时间的记录。我不想要表中的所有4点记录(整个月都在表中)。
如何在SQLite和MySQL上做到这一点?

fhg3lkii

fhg3lkii1#

只需先按日期过滤,然后按小时过滤:

SELECT 
    * 
FROM 
    TableName
WHERE 
    CAST(UTCTimeCreated AS DATE) BETWEEN '2022-10-01' AND '2022-10-10'
    AND HOUR(UTCTimeCreated) = 16 -- or whatever
btqmn9zl

btqmn9zl2#

类似于John K.Have(SQL):

SELECT 
    * 
FROM 
    TableName
WHERE 
    UTCTimeCreated BETWEEN '2022-10-01' AND '2022-10-10' AND DATEPART(Hour,UTCTimeCreated ) = 16
mm9b1k5b

mm9b1k5b3#

要在SQLite和MySQL之间移植,可以使用substr。

select *
from foo
where
    utc_created_time >= '2022-10-01' and
    utc_created_time < '2022-10-14' and
    substr(utc_created_time,12,8)='16:00:00'

如果您可能在寻找午夜时间,请避免使用betweendatetime between date and date在MySQL和SQLite中的行为不同。所以,只要在你结束约会的第二天做<即可。

相关问题