我是sqlite的新手。我有一张名为" matchs"包含即将举行的俱乐部冠军赛。我想找回下一个即将举行的活动。
第一列是date_session,格式为" YYYY-MM-DD HH:MM:SS"
所以我这样做了一个查询:
SELECT * FROM matchs WHERE date_session > datetime('now');
2017_01_09 18:30:00
2017_01_09 19:30:00
2017_01_10 18:20:00
2017_01_10 20:40:00
2017_01_12 18:20:00
2017_01_12 20:40:00
2017_01_16 18:30:00
我不明白为什么1月9日的行包含在结果中。要检查日期时间('现在')是否有效,我只需输出它:
SELECT datetime('now');
2017-01-10 09:30:55
如果我在手动设置的条件日期上进行查询,它可以正常工作:
SELECT * FROM matchs WHERE date_session > '2017_01_10 09:30';
2017_01_10 18:20:00
2017_01_10 20:40:00
2017_01_12 18:20:00
2017_01_12 20:40:00
2017_01_16 18:30:00
当然,由于我希望永远让下一个即将推出的游戏返回,我无法负担手动设置此日期条件。 有人可以帮忙吗?我使用的是SQLite 3.15版。 date_session存储为TEXT。
答案 0 :(得分:1)
-
和_
是不同的字符。在任何字符串比较中,_
> -
,所以你最终只比较一年。