SQLite少于运算符问题

Ane*_*iel 4 sqlite

我正在使用SQLite进行项目,并且<symbol在查询中不起作用.

有一个名为Holidays的表,其中包含一个数据类型为datetime的字段.

假设该表包含HolidayDate列中当前年份的某些日期.

SELECT HolidayDate
  FROM Holidays
 WHERE (HolidayDate >= '1/1/2011')
   AND (HolidayDate <= '1/1/2012')
Run Code Online (Sandbox Code Playgroud)

上述查询中的<符号无效.>上述查询中的符号运行良好.

请帮我.

man*_*nji 14

尝试:

SELECT HolidayDate
  FROM Holidays
 WHERE HolidayDate >= date('2011-01-01')
   AND HolidayDate <= date('2012-01-01')
Run Code Online (Sandbox Code Playgroud)

(日期格式必须YYYY-MM-DD)


Jan*_*dec 5

sqlite 中没有日期时间数据类型。

Sqlite只有4种类型:

  • 整数
  • 浮点数
  • 字符串(存储为 utf-8 或 utf-16 并自动转换)
  • 斑点

此外,sqlite 是清单类型的,这意味着任何列都可以保存任何类型的值。声明的类型仅用于两件事:

  • 如果插入的值看起来是可转换的,则它们会转换为指定的类型(并且它似乎不适用于与sqlite_bind_*方法绑定的值)
  • 它以某种方式暗示索引器或优化器(我只知道当未键入列时使用索引会遇到问题)

更糟糕的是,sqlite 会默默地接受任何类型。如果它以“int”开头,它将解释为整数类型;如果包含“char”或“text”,则解释为字符串;如果它是“real”、“double”或“number”,则解释为浮点数;如果它是“real”、“double”或“number”,则解释为浮点数;如果它包含“char”或“text”,则解释为浮点数;如果它是“real”、“double”或“number”,则解释为浮点数,如果它包含“char”或“text”,则解释为浮点数。如果它是“斑点”。在其他情况下,列只是无类型的,考虑到类型的含义很少,这对 sqlite 来说不会造成任何问题。

这意味着“1/1/2011”只是一个字符串,“mm/dd/yyyy”格式的日期和“dd/mm/yyyy”格式的日期在按 asciibet 方式排序时(实际上是按 unicodebet 方式排序)都不会按日期排序。

如果您以 ISO 格式('yyyy-mm-dd')存储日期,则asciibetical 排序将与日期排序兼容,并且不会有任何问题。