MySQL:在字符串

时间:2016-09-15 15:25:31

标签: mysql date

我有一个存储在数据库中的文件路径和日期列表:

               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格式约定。 日期每天都会改变。 我需要写一个将返回的SELECT查询:

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

我不想在所有可能的情况下写一个永无止境的REPLACE查询:

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

使用MySQL内置函数有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

你想要DATE_FORMAT()。它应该用它们的值替换它识别的格式字符串,并忽略其他所有内容。

SELECT DATE_FORMAT(date, path) AS result;

注意:%M将提供完整的月份(" 9月和#34;),缩写的月份(" 9月和#34;)将使用%b

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