2017-12-15 14 views
0

の日付形式に省略された文字列形式の日付を変換する:IDとMONTH_YEARIが2列からなるテーブルを有しているMySQLの

id month_year 

1 Dec 2016 
2 Jan 2017 
3 Feb 2017 
4 Mar 2017 
. 
... 
....... 

Iは、次

 id month_year 

     1 2016-12-01 
     2 2017-01-01 
     3 2017-02-01 
     4 2017-03-01 
     .. 
     .... 
     ...... 

     (We can assume the date to be 1st) 
ような日付形式からなる結果を必要とします

私はそれを

SELECT id , case when a.month_year = 'Dec 2016' THEN 
STR_TO_DATE('01/12/2016','%d/%m/%Y') 
when a.month_year = 'Jan 2017' THEN 
STR_TO_DATE('01/1/2017','%d/%m/%Y') 
when a.month_year = 'Feb 2017' THEN 
STR_TO_DATE('01/2/2017','%d/%m/%Y') 
when a.month_year = 'Mar 2017' THEN 
STR_TO_DATE('01/3/2017','%d/%m/%Y') 
end as month_year from [table] a 

をハードコーディングでそれを達成できるが、私はそれをしたいHACODINGなしでそれは、新しいデータが来るとき このクエリは動作しません..私はさらに進むことができますか?

+0

可能な複製(https://stackoverflow.com/質問/ 5201383 /文字列を日付に変換する方法) –

答えて

0

例:

SELECT STR_TO_DATE(CONCAT('Dec 2016','01'),'%b %Y %d'); 
+-------------------------------------------------+ 
| STR_TO_DATE(CONCAT('Dec 2016','01'),'%b %Y %d') | 
+-------------------------------------------------+ 
| 2016-12-01          | 
+-------------------------------------------------+ 
0
SELECT DATE_FORMAT(STR_TO_DATE('Dec 2017','%M %Y'), '01/%m/%Y'); 

出力:[?MySQLで文字列を日付に変換する方法]の2017年1月12日

関連する問題