2017-04-11 5 views
0

現在のMYSQLテーブルの日付フィールドのフォーマット(YYMMDD)の内容を転送したいとします。 20170411を既存のUNIX TIMESTAMPS(1491920214)に変更しました。mysqlのdateカラムの既存のコンテンツを別のタイプの新しいカラムに一括移動する方法は?

これは1つのクエリ文として可能ですか、どのように見えますか?または、既存の列のすべてのデータを最初に変換する必要がありますか?

  • 表= wp_postmeta
  • 古い日付フィールド= old_meta_date
  • 新しい日付フィールド=事前にご親切助けをnew_meta_date

感謝。サンプルあなたに見て

+0

元の列のデータ型?何を試しましたか?動作していないコードを表示します。 –

+0

私はどこから始めるべきか分からないので、何も試していません。現在、phpMyAdminのテーブルの列を調べています。 – romu

+0

どのデータ型がold_meta_date列ですか? – scaisEdge

答えて

0

はあなたが

update wp_postmeta 
set new_meta_date = UNIX_TIMESTAMP(concat(substr(old_meta_date,1,2),'-', 
        substr(old_meta_date,3,2) , '-', 
        substr(old_meta_date,5,2))); 

かにキャストを使用することができ、更新のためにそう

SELECT UNIX_TIMESTAMP(concat(substr(old_meta_date,1,2),'-', 
      substr(old_meta_date,3,2) , '-', 
      substr(old_meta_date,5,2))) 
from wp_postmeta; 

を使用することができますもしそうなら、あなたの元の列がvarchar型

ことができることを思え日付

SELECT UNIX_TIMESTAMP(CAST(old_meta_date AS DATE)) 
from wp_postmeta; 

update wp_postmeta 
set new_meta_date = UNIX_TIMESTAMP(CAST(old_meta_date AS DATE)); 
+0

現在のテーブルのバックアップを作成して、これを試してください。お知らせします。 – romu

関連する問題