[MySQL] 日付関連処理

時間や日付関連のSQLメモ

スポンサードリンク

日付計算

今日から3日後

date_add(now(), interval 3 day)

今日の2日前まで

SELECT *  FROM `sk_updates` WHERE `created` < date_add(now(), interval -2 day)
SELECT *  FROM `sk_updates` WHERE `created` < date_add(current_date, interval -2 day)

1ヵ月後

SELECT date_add(current_date, interval 1 month);

1年後

SELECT date_add(current_date, interval 1 year);

Unix Timestampを用いて計算する場合のメモ:

Unix Timestampを用いて計算すると経過日時などが容易に求めることができるとかで利用されたり、あるいは国際化の中で基本となるUTCで記憶しておきTZ+9で計算したりするとラクらしい。

現在のUnix Timestampを求める

SELECT UNIX_TIMESTAMP();
1206005142

Unix TimestampからMySQLのDateTime形式に戻す

SELECT from_unixtime(1206005142);
2008-03-20 18:25:42

perlでUnix Timestampを求めるには

my $uts = time();

この形式を用いてデータ を保管しているのはXoopsがカラム的にIntで扱っているほかUnixではlsコマンドで表示されるファイルのタイムスタンプが UnixTimestampである。他のOSSや一般的なシステムではDateもしくはDateTime、Timestampなどが使われている。

とすればよい。

スポンサードリンク

コメント