我有一个包含以下列的 SQLite 数据库:
文件、创建日期、所有者
如何获取过去 30 天内创建的文件列表?
我尝试了以下方法,但它并没有限制结果。返回的列表中包含 2 年前创建的文件!
SELECT * FROM Table1 WHERE Date_created > (SELECT DATETIME('now', '-30 day'))
另外,不确定这是否重要,但我的 Created_date 列采用以下日期格式:dd/mm/yyyy hh:mm:ss
SQLite 没有本机日期时间数据类型,因此比较将在文本上进行。如果您的记录采用 DD/MM/YYYY 格式,您最终会得到这样的比较,"07/03/2020" > "2020-06-07"这种比较毫无意义。
如果您选择将日期时间存储为文本,则必须使用可按字典顺序排序的格式。展示此属性的一个很好的标准格式(无论如何,如果每条数据都具有相同的时区)是ISO 8601,例如2020-07-07 15:04:14+0300在我的时区中撰写本文时。顺便说一句,甚至 xkcd 也推荐 ISO 8601。
如果您选择将日期时间存储为数字,则可以将它们存储为UNIX time,或者如果您喜欢冒险,也可以将其存储为 number 20200707150414。请记住,如果时区信息对您的应用程序很重要,那么这些数字选项都不存储时区信息。
作为旁白,
SELECT * FROM Table1 WHERE Date_created > DATETIME('now', '-30 day')
Run Code Online (Sandbox Code Playgroud)
足够 :)
| 归档时间: |
|
| 查看次数: |
2399 次 |
| 最近记录: |