簡體   English   中英

是否可以在SQL語句中將列從字符串轉換為日期時間類型?

[英]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沒有為存儲日期和/或時間而預留的存儲類。 相反,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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM