gpt4 book ai didi

sql - 是否可以在 SQL 语句中将列从字符串转换为日期时间类型?

转载 作者:行者123 更新时间:2023-12-03 18:30:30 29 4
gpt4 key购买 nike

我需要使用以下 SQL 语句查询 SQLite 数据库表。

SELECT * 
FROM Alarms
WHERE ALARMSTATE IN (0,1,2)
AND ALARMPRIORITY IN (0,1,2,3,4)
AND ALARMGROUP IN (0,1,2,3,4,5,6,7)
AND DateTime(ALARMTIME) BETWEEN datetime("2012-08-02 00:00:00")
AND datetime("2012-08-03 00:00:00")
ORDER BY ALARMTIME DESC

ALARMTIME 是 TEXT 数据类型。

ALARMTIME 在 datagridview 中显示如下“08/03/2012 11:52 AM”。您可以使用该格式进行检查,例如 DateTime(ALARMTIME) 吗?

此 SQL 语句的唯一问题是它总是返回零数据集或记录。但是,SQLite 并没有提示语法。

最佳答案

严格来说,SQLite 没有 datetime types for its columns :

SQLite does not have a storage class set aside for storing datesand/or times. Instead, the built-in Date And Time Functions of SQLiteare capable of storing dates and times as TEXT, REAL, or INTEGERvalues


这里的问题是您使用的字符串条件不是有效的日期/时间,因此它被视为空:
sqlite> SELECT datetime("2012-08-3 00:00:00");

sqlite> SELECT datetime("2012-08-03 00:00:00");
2012-08-03 00:00:00
(注意 2012-08-03 而不是 2012-08-3。)
此外,请确保 ALARMTIME 中的值格式也正确。

关于sql - 是否可以在 SQL 语句中将列从字符串转换为日期时间类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11798738/

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