SQlite比较没有时间戳的日期

时间:2018-03-18 04:40:12

标签: sql sqlite

在SQLite中,如何在不传递时间戳的情况下比较日期?

日期格式为2018-03-18 08:24:46.101655+00,我想仅将日期部分与2018-03-18进行比较。

我试过mydate='2018-03-18',但没有返回任何记录。

同样,尝试Date(mydate)='2018-03-18',但这也无济于事。

如何比较忽略时间戳部分的日期?

4 个答案:

答案 0 :(得分:1)

select * from mytable
where strftime('%Y-%m-%d', mydate) = '2018-03-18'

答案 1 :(得分:1)

这不是受支持的date formats之一。

要从字符串中提取日期部分,请使用substr()

... WHERE substr(mydate, 1, 10) = '2018-03-18'

最好先在数据库中以正确的格式存储日期。

答案 2 :(得分:1)

看起来日期格式有问题。 Sqlite并不理解' + 00'等数据。在约会。 因此,如果数据类型是带时区'的时间戳,则date()和strftime()将不起作用。 尝试使用like子句。

答案 3 :(得分:0)

尝试使用strftime

SELECT strftime('%Y %m %d', 'columnName');

你可以在strftime.php

找到它