的STR_TO_DATE()
函數是DATE_FORMAT()
函數的逆,它需要一個字符串str
以及格式字符串格式。
STR_TO_DATE()
如果格式字符串包含既日期和時間返回DATETIME
值零件,或DATE
或TIME
值如果字符串包含僅日期或時間部分。
如果日期,時間或日期時間VA從str
提取的lue是非法的,STR_TO_DATE()
返回NULL
併產生警告。
服務器掃描str
嘗試將格式與它匹配。格式字符串可以包含文字字符和格式說明符,以%
開頭。文字字符格式爲必須字面上匹配str
。格式說明符格式爲必須匹配str
中的日期或時間部分。
而且,爲了獲得零的原因是未指定的日期或時間部分有0的值,因此未完全指定的值str
產生一些結果或所有部分設置爲0,例如:
mysql> SELECT STR_TO_DATE('abc','abc');
-> '0000-00-00'
mysql> SELECT STR_TO_DATE('9','%m');
-> '0000-09-00'
mysql> SELECT STR_TO_DATE('9','%s');
-> '00:00:09'
檢查在查詢中使用的日期/時間匹配的格式,並確保您的數據庫中的行包含串,它可以被轉換爲日期,並沒有從功能指定輸出值相同的數據庫字段:
SELECT
FirstDisplayedDate,
STR_TO_DATE(FirstDisplayedDate,'%e.%c.%Y') AS Converted
FROM product
Here和here更多信息如何正確使用該功能。