STR_TO_DATE(str,format)
這是DATE_FORMAT()函數的逆。它採用字符串str和格式字符串格式。如果格式字符串同時包含日期和時間部分,則STR_TO_DATE()返回DATETIME值;如果字符串僅包含日期或時間部分,則返回DATE或TIME值。如果從str中提取的日期,時間或日期時間值不合法,則STR_TO_DATE()返回NULL併產生警告。
服務器掃描str嘗試匹配格式。格式字符串可以包含以%開頭的文字字符和格式說明符。格式中的文字字符必須在字符串中匹配。格式中的格式說明符必須與str中的日期或時間部分匹配。對於格式中可以使用的說明符,請參閱DATE_FORMAT()函數說明。
mysql> SELECT STR_TO_DATE('01,5,2013','%d,%m,%Y');
-> '2013-05-01'
mysql> SELECT STR_TO_DATE('May 1, 2013','%M %d,%Y');
-> '2013-05-01'
掃描從str開頭開始,如果發現格式不匹配,則失敗。 str結尾的額外字符被忽略。
mysql> SELECT STR_TO_DATE('a09:30:17','a%h:%i:%s');
-> '09:30:17'
mysql> SELECT STR_TO_DATE('a09:30:17','%h:%i:%s');
-> NULL
mysql> SELECT STR_TO_DATE('09:30:17a','%h:%i:%s');
-> '09:30:17'
未指定的日期或時間部分具有爲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'
範圍上的日期的各個部分檢查值如第11.3.1節「DATE,DATETIME和TIMESTAMP類型」中所述。這意味着,例如,除非SQL模式被設置爲禁止這些值,否則允許「零」日期或部分值爲0的日期。
mysql> SELECT STR_TO_DATE('00/00/0000', '%m/%d/%Y');
-> '0000-00-00'
mysql> SELECT STR_TO_DATE('04/31/2004', '%m/%d/%Y');
-> '2004-04-31'
如果NO_ZERO_DATE或NO_ZERO_IN_DATE SQL模式被激活,零日期或日期的一部分是不允許的。在這種情況下,STR_TO_DATE()返回NULL並生成警告。
注: -
您不能使用格式「%X%V」一年爲期一週的字符串轉換爲日期,因爲一年一週的組合並不唯一,如果每週確定一個年份和月份跨過一個月的邊界。要將年份轉換爲日期,您還應指定星期幾:
mysql> SELECT STR_TO_DATE('200442 Monday', '%X%V %W');
-> '2004-10-18'
他希望在MySQL中使用此工作臺並使用mysql工作臺;) – Susang
確定。得到它了。我會更新。 –