如何获取两个Unix时间戳之间的行



在我的SQLite数据库中,我有一个created_date作为毫秒时间戳,例如1646384581034

因此,如果有这种格式的值2022-03-03 00:00:002022-03-03T00:00:00,我如何获取此日期和当前日期之间的行?

WHERE
created_date BETWEEN 
strftime('%s', '2022-03-03 00:00:00') * 1000
AND
Current_timstamp

这是我的要求,语法可能不正确。

您可以使用函数strftime()将类似于2022-03-03 00:00:002022-03-03T00:00:00的日期时间转换为类似于列created_date中的值的unix epoch时间戳

例如:

WHERE created_date > strftime('%s', '2022-03-03 00:00:00') * 1000

或:

WHERE created_date BETWEEN 
strftime('%s', '2022-03-03 00:00:00') * 1000
AND
strftime('%s', 'now') * 1000

created_date包含毫秒,这就是为什么需要乘以1000。

如果日期是时间戳,则需要执行以下操作(以下两个日期是示例(:

SELECT * FROM myDB WHERE created_date BETWEEN '2014-10-09 00:00:00' AND '2014-10-10 23:59:59'

或者你可以做,我相信:

SELECT * FROM myDB WHERE DATE(created_date) BETWEEN '2014-10-09' AND '2014-10-10'

或者,由于它是一个文本字段:

SELECT * FROM myDB WHERE DATE_FORMAT(created_date,'%Y-%m-%d') BETWEEN '2014-10-09' AND '2014-10-10'

最新更新