datetime型をunix timestampに一発変換
最近はあまり使うことはないのだが、以前はカラムを定義する際にdatetime型やdate型をよく使っていた(最近はint型にしてunix timestampでデータを入れるのが好き)。当然のことながら昔作ったプログラムをリニューアルするとき、違和感を覚えることがある。そんなときに便利な関数がunix_timestamp。例えばSELECT文で、以下のように使用する。
SELECT unix_timestamp(timestamp_type_column) FROM table
これでdatetime型やdate型の値をunix timestampにして返してくれる(ちなみにその逆の関数はfrom_unixtime)。SQL文を発行する際にその都度関数を呼び出してもいいだろうけど、それではオーバーヘッドがバカにならないこともある(もちろん相応の負荷があるサイトの場合だが)。なので、元のテーブルを、上記の関数やその他の関数を使って一旦吐き出し、新しいテーブルを作ってそこにデータを流し込むほうがいい。でも、型の変更が原因で諸々問題が出る可能性があることを理解して使わないといけないけれど。