我正在将SQLite用于项目并且<符号在查询中不起作用。
有一个名为Holidays的表,其中包含一个数据类型为datetime的字段。
假设该表包含HolidayDate列中当前年份的某些日期。
SELECT HolidayDate
FROM Holidays
WHERE (HolidayDate >= '1/1/2011')
AND (HolidayDate <= '1/1/2012')
&lt;上述查询中的符号无效。 &GT;上述查询中的符号运作良好。
请帮帮我。
答案 0 :(得分:13)
尝试:
SELECT HolidayDate
FROM Holidays
WHERE HolidayDate >= date('2011-01-01')
AND HolidayDate <= date('2012-01-01')
(日期格式必须为YYYY-MM-DD
)
答案 1 :(得分:4)
sqlite中没有datetime数据类型。
Sqlite只有4种类型:
此外,sqlite是manifest-typed,这意味着任何列都可以保存任何类型的值。声明的类型仅用于两件事:
sqlite_bind_*
方法绑定的值)更糟糕的是,sqlite会默默接受任何作为类型。如果它以“int”开头,则将其解释为整数类型,如果它包含“char”或“text”,则将其解释为字符串,如果它是“real”,“double”或“number”,则将其解释为浮点数如果它是“blob”。在其他情况下,该列只是无类型,这对于sqlite没有任何问题,因为打字意味着什么。
这意味着'1/1/2011'只是一个字符串,既不是以'mm / dd / yyyy'格式的日期,也不是以'dd / mm / yyyy'格式的日期,按日期排序时按字母排序(实际上是unicodebetically)。
如果您以ISO格式('yyyy-mm-dd')存储日期,那么asciibetical排序将与日期排序兼容,您就没有问题。