使用strftime过滤SQLite记录

oprakyz7  于 2023-01-31  发布在  SQLite
关注(0)|答案(2)|浏览(125)

我在Android应用程序中有SQLite数据库,记录如下所示

id           date
1            2023-01-29T15:56:00.733533+01:00
2            2023-01-29T15:56:02.092214+01:00

我需要过滤这些记录的日期,月份等,我发现strftime函数应该是最好的方式来做到这一点,但我的选择是行不通的。有人能请帮助我做错了什么。
我的SELECT是

SELECT * FROM history WHERE date = strftime('%Y-%m-%d', '2023-01-29');

谢谢你。

aiazj4mn

aiazj4mn1#

时间以ISO-8601标准格式存储
改为执行此操作

SELECT * FROM history WHERE strftime('%Y-%m-%d', date)='2023-01-29'

//for a particular month

SELECT * FROM history WHERE strftime('%m', date)='2'
bwntbbo3

bwntbbo32#

使用strftime(),您可以将时间戳格式化为特定格式,正确的语法如下:

SELECT * 
FROM history 
WHERE strftime('%Y-%m-%d', date) = '2023-01-29';

或者,对于特定月份,如“2023- 01”:

SELECT * 
FROM history 
WHERE strftime('%Y-%m', date) = '2023-01';

或者,对于特定年份,如“2023”:

SELECT * 
FROM history 
WHERE strftime('%Y', date) = '2023';

相关问题