当前日期为2个月后,日期比较无效,与

时间:2017-11-22 06:06:41

标签: android sqlite date

在我的应用程序中,如果enrollDate小于或等于当前日期,我必须获取所有行的列表。

我的SQLite查询为

select * from master  where enrollDate<='current date'

表中的注册日期为"07/21/2017",当前日期为"11/22/2017"

一切正常,如果当前日期是'30/09/2017',但是当前日期从"10/01/2017"开始,我会得到行列表,然后列表返回0行,而后期日期也是。

请告诉我它为什么会发生以及如何解决它。

2 个答案:

答案 0 :(得分:1)

您实际上在比较字符串,而不是日期。字符串按字典顺序比较。

要比较SQL中的日期,请考虑将其存储为字典和时间顺序相同的格式。例如,ISO 8601 UTC标记yyyy-MM-dd或Java的long纪元毫秒。

答案 1 :(得分:0)

SELECT * FROM master WHERE CAST(strftime('%s', enrollDate)  AS  integer) <=CAST(strftime('%s', currentDate)  AS  integer) ;