ちょっとハマったのでメモ。
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.
0 件のコメント:
コメントを投稿