Drupal 日付の変換
Drupalで作っていたブログをWordPressに移した。インポートするプラグインを探したけど見つからないので、両者のSQLテーブルを見比べて、必要なデータをSQL文で取り出して、インポートするという方法を使う。
SQL文で直接書き出したデータを移動させたのだけれど、躓いたのが、Drupalが格納していた日付の形式。数字の羅列で入っている。のん気にエクセルに関数があるだろうから、それで変換してしまおうと考えて、Windowsにデータを落としてやってみると日付部分しか出てこない。んー。
SQL上で何かできるかな?とググってみて、「MySQLにdatetime型で保存したデータをUNIX TIMEで取り出すUNIX_TIMESTAMP関数」(人生はひまつぶし)で説明されていた。
そうか、Drupalというよりは、MySQLでUnix timeで保存されていたのか。それで、from_unixtime()関数を使って、yyyy-mm-dd hh:mm形式の文字列で取り出せた。ついでなので、WordPressにはGMTでの時間も必要なのでUNIX timeのまま、32400(=9時間x60分x60秒)を加えてから、変換してGMTでも取り出す様にした。
yyyy-mm-dd hh:mm形式だと,単なる文字列だけれど、Unix timeなら計算で時間帯を変えたり、時間計算ができるから、こういう時は助かる。汎用CMSであるDrupalが内部形式として持っているのは合理的なのだろう。