在我的严重疏忽中,我将所有日期格式排序为%M %d %Y (July 3 2012)
而不是%Y %m %d (2012 07 03)
。
我想将自定义字段的所有日期(称为“game_release_date”)转换为新格式。
我到目前为止(但不起作用)的代码是:
UPDATE `wp_postmeta`
SET meta_key = DATE(STR_TO_DATE(game_release_date, '%m %d %Y'))
WHERE DATE(STR_TO_DATE(game_release_date, '%M %d %Y'));
答案 0 :(得分:0)
要将包含July 03 2012
的字符串转换为MySQL日期,请使用MySQL的STR_TO_DATE()
函数:
STR_TO_DATE(game_release_date, '%M %d %Y')
我建议将此函数的结果存储在DATE
数据类型的列中。
要将MySQL日期(无论是上述函数的结果还是DATE
列)转换为2012 07 03
,请使用MySQL的DATE_FORMAT()
函数:
DATE_FORMAT(date_value, '%Y %m %d')
因此,如果您想将日期保存在字符串中(通常是一个坏主意),但采用新格式:
UPDATE wp_postmeta
SET game_release_date = DATE_FORMAT(
STR_TO_DATE(game_release_date, '%M %d %Y'),
'%Y %m %d'
)
WHERE meta_key = ...