[英]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.