gpt4 book ai didi

sqlite - SQLite 中的日期函数不选择数据库中的行

转载 作者:行者123 更新时间:2023-12-03 17:45:36 25 4
gpt4 key购买 nike

我在表 c 中有一列 tbl,其中包含以下值。

Tue, 15 Nov 2011 14:21:32 GMT
Tue, 15 Nov 2011 12:59:21 GMT
Tue, 15 Nov 2011 12:15:48 GMT
Tue, 15 Nov 2011 12:10:33 GMT
Tue, 15 Nov 2011 11:12:09 GMT
Tue, 15 Nov 2011 11:09:14 GMT
Tue, 15 Nov 2011 10:38:01 GMT
Tue, 15 Nov 2011 10:36:33 GMT
Tue, 15 Nov 2011 10:09:21 GMT
Tue, 15 Nov 2011 09:23:01 GMT
Tue, 15 Nov 2011 08:24:39 GMT
Mon, 14 Nov 2011 22:44:53 GMT
Mon, 14 Nov 2011 21:03:28 GMT
Mon, 14 Nov 2011 20:12:11 GMT
Mon, 14 Nov 2011 19:08:34 GMT
Mon, 14 Nov 2011 18:40:05 GMT
Mon, 14 Nov 2011 18:07:00 GMT
Mon, 14 Nov 2011 18:04:00 GMT
Mon, 14 Nov 2011 17:37:45 GMT

这些值取自命令:
select c from tbl;
当我运行时:
select count(*) from tbl where c < date('2011-11-18');
结果是 0
这里有什么问题?

谢谢你

最佳答案

您存储在数据库中的是常规字符串,而不是 SQLite 日期时间字符串。

要将 TEXT 列的内容识别为日期时间,它必须以 YYYY-MM-DD HH:MM:SS.SSS 格式存储.

要从您拥有的数据中获得您想要的结果,您必须使用字符串比较,并执行 <您想要的比较会很棘手(您需要检查子字符串并查找 year < 2011 OR month IN (JAN,FEB,MAR. . .) OR (month = 'NOV' AND day < 18 )。

最好:

  • 查找插入数据的位置并将其更改为插入“正确”的 SQLite 日期和
  • 对现有数据运行一次性例程以重新格式化它。
  • 关于sqlite - SQLite 中的日期函数不选择数据库中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8183265/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com