SQLite:比较列中的日期

时间:2018-03-07 17:46:48

标签: sqlite android-studio

我在Android应用程序上使用SQLite。

我想从仅包含日期和月份列的表中选择接下来的5天,但我无法使用此查询执行此操作:

SELECT * 
FROM table_name 
WHERE ('2018-' || month || '-' || day) 
   BETWEEN date('now', '+1 days') AND date('now', '+5 days')

但是当我在月和日之前添加零时,它会正确选择(火星)行。

SELECT * 
FROM table_name 
WHERE ('2018-0' || month || '-0' || day) 
   BETWEEN date('now', '+1 days') AND date('now', '+5 days')

但这已经好几个月都没有工作,比如10,11和12,而且几天也一样。 我该怎么办?

编辑1

表列:id(整数)日(整数)月(整数)

第二个查询结果:

id - day - month
3 - 10 - 3
4 - 11 - 3
5 - 12 - 3

1 个答案:

答案 0 :(得分:2)

问题是月份预计为MM格式,但您的数据长度为1(3 - 3月)。我通过在前缀为0来修复您的查询,以防月份为1-9。 我做了几天也一样。希望这可以帮助。感谢。

SELECT *
FROM table_name
where ('2018-' || substr('0'||month, -2, 2) || '-' || substr('0'||day, -2, 2))
BETWEEN date('now', '+1 day') AND date('now', '+5 day');

结果:

ID  day month
3   10  3
4   11  3
5   12  3