我在SQLite DataTime过滤方面遇到了一些问题
我在我的wpf项目中使用了System.Data.SQLite
我可以使用以下sql查询进行过滤。
SELECT * FROM tblTest WHERE CAST(testDate As date) > CAST('28/09/2015' As date);
根据上面的sql,我得到的所有日期都大于28/09/2015。 btw testDate字段是我的sqlite表中的Varchar数据类型。
当我使用BETWEEN
条款时,我什么都没得到。
SELECT * FROM tblTest WHERE CAST(testDate As date) BETWEEN CAST('28/09/2015' as date) AND CAST('10/10/2015' as date);
我应该如何过滤日期?
答案 0 :(得分:3)
dd/mm/yyyy
在SQLite中不是有效的TimeString
正确的格式为yyyy-mm-dd
。
据报道here, SQLite中的有效TimeStrings是:
并且您不需要转换为... date(这不是SQLite中的现有数据类型,它将回退到TEXT)。
关于SQLite数据类型的参考:https://www.sqlite.org/datatype3.html
另请注意,查询和命令末尾的分号(; )完全没用,因为SQLite不会连接SQL语句。
最后,您的查询应该是
SELECT * FROM tblTest WHERE testDate BETWEEN '2015-09-28' AND '2015-10-10'