SQLite没有DATE数据类型?我该如何解决这个问题?

Ale*_*lex 3 php mysql sql sqlite

SQLite没有日期的数据类型.

我想知道是否足以在日期字符串之间进行字符串比较Y-m-d H:i:s(标准的sql日期时间格式).

例如...WHERE date < NOW()....这会在某些情况下失败吗?

Mos*_*cho 5

您可以使用以下数据类型在SQLite中存储日期:

  • TEXT为ISO8601字符串("YYYY-MM-DD HH:MM:SS.SSS").
  • 真实如朱利安日数,根据公历4714年11月24日格林威治中午以来的天数.
  • INTEGER as Unix Time,自1970-01-01 00:00:00 UTC以来的秒数.

然后,您可以使用此处列出的功能转换这些假日期.

现在,您还提到了函数NOW(),这在SQLite中不起作用.这是针对MySQL的.这将显示要使用的SQLite语法:

sqlite> select date('now');
2012-02-12
sqlite> select date('now') = date('2012-02-12');
1
sqlite> select date('now') = date('2012-02-11');
0
Run Code Online (Sandbox Code Playgroud)

因此,强烈建议您使用此功能,另一方面,请确保您不使用NOW().