SQlite查询选择字符串日期今天或小于

SQlite查询选择字符串日期今天或小于,sqlite,android-sqlite,Sqlite,Android Sqlite,我在查询方面有问题 我无法获得我想要的正确结果日期 我需要得到从今天开始的所有日期或少于今天的日期 你能帮助我或给我正确的查询使用吗 例如,这是mytable 我使用的查询:从mytable中选择*,其中datestring您遇到的问题是日期'now'将返回2019-02-06,例如表中的所有行都以0开头,并且该值小于2 您需要将其中一个日期转换为与另一个日期相同的格式,或者在存储数据时使用相同的格式 SQLite本身有各种可以识别和使用的日期格式,建议使用其中一种格式,以减少必要的复杂性 时间

我在查询方面有问题 我无法获得我想要的正确结果日期 我需要得到从今天开始的所有日期或少于今天的日期

你能帮助我或给我正确的查询使用吗

例如,这是mytable


我使用的查询:从mytable中选择*,其中datestring您遇到的问题是日期'now'将返回2019-02-06,例如表中的所有行都以0开头,并且该值小于2

您需要将其中一个日期转换为与另一个日期相同的格式,或者在存储数据时使用相同的格式

SQLite本身有各种可以识别和使用的日期格式,建议使用其中一种格式,以减少必要的复杂性

时间字符串时间字符串可以采用以下任意格式:

YYYY-MM-DD
YYYY-MM-DD HH:MM
YYYY-MM-DD HH:MM:SS
YYYY-MM-DD HH:MM:SS.SSS
YYYY-MM-DDTHH:MM
YYYY-MM-DDTHH:MM:SS
YYYY-MM-DDTHH:MM:SS.SSS
HH:MM
HH:MM:SS
HH:MM:SS.SSS
now
DDDDDDDDDD
以下是可用于转换查询中的datestring列的解决方案:-

SELECT * FROM mytable WHERE substr(datestring,7,4)||'-'||substr(datestring,1,2)||'-'||substr(datestring,4,2) <= date('now');
这可能是您最初的查询

SELECT * FROM mytable WHERE datestring <= date('now');

您应该以sqlite可以理解的格式存储日期值:当然,将mm/dd/yyyyy格式字符串与yyyy-mm-dd格式字符串进行比较是行不通的。另外,请阅读ah-hmmm好的,让我试试。我还混淆了我的格式和日期类型:正确返回确定将我的代码调整为正确的格式:谢谢@Shawn
UPDATE mytable SET datestring = substr(datestring,7,4)||'-'||substr(datestring,1,2)||'-'||substr(datestring,4,2);
SELECT * FROM mytable WHERE datestring <= date('now');