2013年9月20日金曜日

MySQLで期間を指定する

ちょっとハマったのでメモ。

MySQLで一定の期間を指定してselectする場合。

ここでは仮に1ヶ月前から3ヶ月前の更新データを取得するとします。

例えば1ヶ月前は次のように書きます。

select NOW() - INTERVAL 1 MONTH

期間を指定する場合は between で挟めばOK。

ですが、以下のように書いてしまうと結果が取得できません。

select code
from item
where last_update between (NOW() - INTERVAL 1 MONTH) and (NOW() - INTERVAL 3 MONTH)

正しくは以下。

select code
from item
where last_update between (NOW() - INTERVAL 3 MONTH) and (NOW() - INTERVAL 1 MONTH)

between は 「小さい方」 and 「大きい方」 という書き方でないとだめみたいです。


Written with StackEdit.

  • この記事をシェアする

  • このエントリーをはてなブックマークに追加
  • このブログの更新をチェックする

  • follow us in feedly