offers.date = CURDATE()
Run Code Online (Sandbox Code Playgroud)
我现在拥有的东西.
它抓住今天的报价,但我也想抓住昨天的订单.
如何在不指定昨天的日期的情况下这样做?
edw*_*dmp 37
要使用CURDATE减去或加上一个间隔(例如昨天),您可以使用DATE_ADD函数
SELECT DATE_ADD(CURDATE(), INTERVAL -1 DAY);
Run Code Online (Sandbox Code Playgroud)
所以,在你的情况下你使用它像这样:
WHERE offers.date = CURDATE() OR offers.date = DATE_ADD(CURDATE(), INTERVAL -1 DAY)
Run Code Online (Sandbox Code Playgroud)
您也可以选择使用DATE_SUB()函数而不是负间隔使用相同的间隔但是为正.
因此,DATE_ADD(CURDATE(), INTERVAL -1 DAY)
将成为DATE_SUB(CURDATE(), INTERVAL 1 DAY)
小智 10
在我看来,只是说下面的内容会更简单
WHERE offers.date >= CURDATE() - INTERVAL 1 day
Run Code Online (Sandbox Code Playgroud)
基于@ edwardmp的答案,我发现这种语法比使用它更具可读性DATE_ADD()
:
current_date() - interval 1 day
Run Code Online (Sandbox Code Playgroud)
此外,我会使用IN
而不是OR
更容易将其与where子句的其余部分结合起来,而不必过多担心括号:
WHERE offers.date in (current_date(), current_date() - interval 1 day)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
53464 次 |
最近记录: |