2

我有这个在 SQL 服务器中工作的查询:

Convert(datetime, [ChangedDate]) >= DATEADD(DAY, -3, CAST(GETDATE() AS DATE)) 

我想让它在 Android SQLite 数据库中工作。

据我了解,我需要使用类似的东西:date('now','+14 day')而不是DATEADD,但它给了我一个错误datetime(它可能是在 sqlite.convert(datetime,...)

您可以修改此查询以使其在 SQLite 上运行吗?

4

1 回答 1

2

SQLite 没有date数据类型。所以你不需要使用convertor cast。像这样的查询会起作用:

select  *
from    table1
where   col1 < datetime('now', '-3 days')

SQL Fiddle 的示例。

有关更多详细信息,请参阅SQLite 手册

1.2 日期和时间数据类型

SQLite 没有为存储日期和/或时间预留存储类。相反,SQLite 的内置日期和时间函数能够将日期和时间存储为 TEXT、REAL 或 INTEGER 值:

TEXT作为 ISO8601 字符串(“YYYY-MM-DD HH:MM:SS.SSS”)。

REAL作为儒略日数字,根据预测的公历,自公元前 4714 年 11 月 24 日格林威治中午以来的天数。

INTEGER 作为 Unix 时间,自 1970-01-01 00:00:00 UTC 以来的秒数。

应用程序可以选择以任何这些格式存储日期和时间,并使用内置的日期和时间函数在格式之间自由转换。

于 2013-02-06T10:02:42.023 回答