[英]Is it possible to convert a column from string to datetime type in a SQL statement?
我需要使用以下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没有为存储日期和/或时间而预留的存储类。 相反,SQLite的内置日期和时间函数能够将日期和时间存储为TEXT,REAL或INTEGER值
这里的问题是您使用条件的字符串不是有效的日期/时间,因此它被视为null:
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
中的值ALARMTIME
已正确格式化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.