2009-12-07 3 views
52

私は日付が文字列としてdd/mm/yyyyの形式で格納されているシステムを使用しています。これをyyyy-mm-ddにSELECTクエリで変換することができますか(DATE_FORMATを使用できるように) MySQLは日付解析機能を持っていますか?MySQLの日付を文字列フィールドから

私が考えることができる唯一の方法は、一連の部分文字列を連結することですが、うまくいけば簡単な解決法があります。

(それはメタテーブルですので、残念ながら、私は本当の日付フィールドにフィールドを変換することはできません:同じ列は単なる文字列で異なるフィールドの値が含まれています)

答えて

111

これがあります。それはあなたが望む形式で出てくることを確認するために、DATE_FORMAT使用:

DATE_FORMAT(STR_TO_DATE(t.datestring, '%d/%m/%Y'), '%Y-%m-%d') 

あなたは元の列にデータ型を変更できない場合、私はに文字列を変換するSTR_TO_DATEコールを使用していますcreating a viewを提案しますDateTimeデータ型。

+1

その便利で素早い解決策のために多くの助けになりました –

4

STR_TO_DATEあなたがこれを行うことができ、フォーマット引数を持ちます。

STR_TO_DATE(t.datestring, '%d/%m/%Y') 

... datetimeデータ型に文字列を変換します:

17

はい、str_to_date

mysql> select str_to_date("03/02/2009","%d/%m/%Y"); 
+--------------------------------------+ 
| str_to_date("03/02/2009","%d/%m/%Y") | 
+--------------------------------------+ 
| 2009-02-03       | 
+--------------------------------------+ 
1 row in set (0.00 sec) 
0
SELECT STR_TO_DATE(dateString, '%d/%m/%y') FROM yourTable... 
関連する問題