2016-09-15 10 views
0

の内部日付形式を変換する:のMySQL:私はデータベースに格納されたファイルパスと日付のリストを持っている文字列

   path   | date 
_____________________________|___________ 
C:\folder\file1 %Y-%m-%d.csv | 2016-09-14 
C:\folder\file2_%M %d %Y.csv | 2016-09-13 
C:\folder\file3 %y%m%d.csv | 2016-08-31 

ファイルパスの日付はSTR_TO_DATEフォーマット規則に従っています。 日付は毎日変更されます。私はすべての可能なシナリオで終わることはありませんREPLACEクエリを書き終わるしたくない

   result 
_________________________________ 
C:\folder\file1 2016-09-14.csv 
C:\folder\file2_Sep 14 2016.csv 
C:\folder\file3 160831.csv 

REPLACE(... REPLACE(REPLACE(path,'%Y',YEAR(date)),'%d',DAY(date))...) 

があり、私が返すSELECTクエリを記述する必要があります MySQL組み込み関数でこれを行う方法は?

答えて

1

ここにDATE_FORMAT()が必要です。それは、認識した書式文字列をその値で置き換え、それ以外は無視しなければなりません。

SELECT DATE_FORMAT(date, path) AS result; 

注:%Mが短縮された月( "9月")のために、完全な月( "9月")を与えるには、%bを使用しています。

デモ:http://sqlfiddle.com/#!9/77b6f7/1

関連する問題