我有一个存储在数据库中的文件路径和日期列表:
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内置函数有没有办法做到这一点?
答案 0 :(得分:1)
你想要DATE_FORMAT()
。它应该用它们的值替换它识别的格式字符串,并忽略其他所有内容。
SELECT DATE_FORMAT(date, path) AS result;
注意:%M
将提供完整的月份(" 9月和#34;),缩写的月份(" 9月和#34;)将使用%b
。 子>