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 2012MySQLの日付に変換するには、MySQLのSTR_TO_DATE()関数を使用します。

STR_TO_DATE(game_release_date, '%M %d %Y')

DATEこの関数の結果をデータ型の列に格納することをお勧めします。

MySQLの日付(上記の関数の結果であろうとDATE列であろうと)をに変換するには、MySQLの関数2012 07 03を使用します。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 に答える