SQLite Where Filter by Date格式如下:“Wed Aug 03 08:00:00 PDT 2022”?

0aydgbwb  于 2022-11-15  发布在  SQLite
关注(0)|答案(1)|浏览(296)

我在一个数据类型为DATE的SQLite表中有数据。数据的格式如下所示,例如:
“Wed Aug 03 08:00:00 PDT 2022”
如果我希望使用WHERE语句按日期进行筛选,如何使用此日期格式执行此操作?
更好的是,屏蔽或修改这些数据以使用更典型的YYYY-MM-DD格式进行搜索的最佳方式是什么?
如果有类似的问题贴出来回答这个问题,请让我知道,而不是无礼,我一定是错过了。我不会不看就问:)
谢谢!

myss37ts

myss37ts1#

Sqlite不会以这种格式存储日期。实际上,SQLite没有用于日期的内部存储类型:
SQLite没有为存储日期和/或时间预留的存储类。相反,SQLite的内置日期和时间函数能够将日期和时间存储为文本值、实数值或整数值:
ISO8601字符串形式的文本(“YYYY-MM-DD HH:MM:SS.SSS”)。
公元前4714年11月24日格林威治自中午起的天数,与儒略日的实数相同。
作为Unix时间的整数,即自1970-01-01 00:00:00 UTC以来的秒数。
如果您看到格式为“Wed Aug 03 08:00:00PDT 2022”的数据,很可能是Flexible Typing的情况,其中SQLite将字符串值“按原样”存储在日期字段中,因为它无法将其识别为日期。
因此,您需要使用字符串操作函数从字符串中提取值,从而将其转换为正确的日期值(可以是YYYY-MM-DD HH:MM:SS格式的数字或字符串)。还要注意的是,Sqlite不支持时区识别(除了本地时间)。

相关问题