sqlite3根据日期时间选择条件('现在')错误

时间:2017-01-10 10:24:03

标签: date datetime sqlite

我是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。

1 个答案:

答案 0 :(得分:1)

-_是不同的字符。在任何字符串比较中,_> -,所以你最终只比较一年。