SQLite,根据日期进行查询

Ric*_*ick 2 sql sqlite

我一直在寻找如何做到这一点,但我没有得到一个明确的答案(也许我的资源不是那么好).我需要创建一个SQLite查询来从SQLite DB中检索两个日期之间的数据.

我在尝试这个:

SELECT CONTACTNAME
FROM SHIPMENT 
WHERE DATECREATED 
BETWEEN date('11-15-2010') 
AND date('12-25-2010');
Run Code Online (Sandbox Code Playgroud)

数据在我的SQLite DB中:

CONTACTNAME=VARCHAR
DATECREATED=date (format: "11/22/2010")
Run Code Online (Sandbox Code Playgroud)

dan*_*n04 13

SQLite没有日期类型.您可以将日期存储为字符串,但您需要使用YYYY-MM-DD日期顺序,而不是 MM-DD-YYYY.这有两个主要原因:

(1)正确的订购

随着YYYY-MM-DD日期,词典顺序相同的时间顺序,这使得<,>BETWEEN运营商合作的预期.

不是 MM-DD-YYYY日期的情况.对日期的查询BETWEEN '11-15-2010' AND '12-25-2010'将错误地匹配'11-22-1963''12-21-2012'.

(2)与SQLite日期和时间函数的兼容性.

它们接受字符串和数字(​​Julian)日期,但如果将字符串传递给任何这些函数,则必须具有YYYY-MM-DD顺序.