1

由于我的严重疏忽,我将所有日期格式排序为%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'));
4

1 回答 1

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 = ...
于 2012-07-04T00:19:10.377 回答