在我的SQLite数据库中,我有一个created_date
作为毫秒时间戳,例如1646384581034
。
因此,如果有这种格式的值2022-03-03 00:00:00
或2022-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:00
或2022-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'