offers.date = CURDATE()
私が現在持っているもの。
今日のオファーを取得しますが、昨日の注文も取得したいと思います。
昨日の日付を指定せずにこれを行うにはどうすればよいですか?
offers.date = CURDATE()
私が現在持っているもの。
今日のオファーを取得しますが、昨日の注文も取得したいと思います。
昨日の日付を指定せずにこれを行うにはどうすればよいですか?
CURDATE マイナスまたはプラス間隔 (たとえば昨日) を使用するには、DATE_ADD関数を使用できます。
SELECT DATE_ADD(CURDATE(), INTERVAL -1 DAY);
したがって、あなたの場合、次のように使用します。
WHERE offers.date = CURDATE() OR offers.date = DATE_ADD(CURDATE(), INTERVAL -1 DAY)
オプションで、DATE_SUB() 関数を使用して、負の間隔の代わりに同じ間隔で正の間隔を使用することもできます。
したがってDATE_ADD(CURDATE(), INTERVAL -1 DAY)
、DATE_SUB(CURDATE(), INTERVAL 1 DAY)
次のように言う方が簡単なように思えます
WHERE offers.date >= CURDATE() - INTERVAL 1 day
@edwardmpの回答に基づいて構築すると、この構文は次を使用するよりもわずかに読みやすいことがわかりますDATE_ADD()
。
current_date() - interval 1 day
また、かっこについてあまり心配することなく、これを where 句の残りの部分と簡単に組み合わせることができるようにするIN
代わりに使用します。OR
WHERE offers.date in (current_date(), current_date() - interval 1 day)