2016-09-15 6 views
0

Ich habe eine Liste von Dateipfaden und in einer Datenbank gespeicherten Daten:MySQL: Umwandlung von Datumsformaten innerhalb von Strings

   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 

Die Daten in den Dateipfaden werden nach der STR_TO_DATE Format Konvention. Die Daten ändern sich jeden Tag. Ich brauche eine SELECT-Abfrage zu schreiben, die angezeigt werden kann:

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

Ich will nicht eine nie endende REPLACE Abfrage mit allen möglichen Szenarien, um am Ende zu schreiben:

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

Gibt es ein Möglichkeit, dies mit einer integrierten MySQL-Funktion zu tun?

Antwort

1

Sie möchten hier. Es sollte Formatzeichenfolgen, die es erkennt, durch ihre Werte ersetzen und alles andere ignorieren.

SELECT DATE_FORMAT(date, path) AS result; 

HINWEIS: %M den vollen Monat ("September"), für den abgekürzten Monat ("September") gibt %b verwenden.

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

Verwandte Themen