Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用MySQL获取CURDATE()和前一天的位置_Mysql - Fatal编程技术网

使用MySQL获取CURDATE()和前一天的位置

使用MySQL获取CURDATE()和前一天的位置,mysql,Mysql,我知道我现在拥有什么 它今天有报价,但我也想昨天有订单 如何在不指定昨天日期的情况下执行此操作?要使用CURDATE减号或加号间隔(例如,昨天),可以使用此函数 因此,在您的情况下,您可以这样使用它: SELECT DATE_ADD(CURDATE(), INTERVAL -1 DAY); 您还可以选择使用DATE_SUB()函数,并使用相同的时间间隔(但为正)代替负时间间隔 因此,DATE\u ADD(CURDATE(),INTERVAL-1天)将变成DATE\u SUB(CURDATE()

我知道我现在拥有什么

它今天有报价,但我也想昨天有订单


如何在不指定昨天日期的情况下执行此操作?

要使用CURDATE减号或加号间隔(例如,昨天),可以使用此函数

因此,在您的情况下,您可以这样使用它:

SELECT DATE_ADD(CURDATE(), INTERVAL -1 DAY);
您还可以选择使用DATE_SUB()函数,并使用相同的时间间隔(但为正)代替负时间间隔


因此,
DATE\u ADD(CURDATE(),INTERVAL-1天)
将变成
DATE\u SUB(CURDATE(),INTERVAL-1天)

基于@edwardmp的答案,我发现这个语法比使用
DATE\u ADD()稍微可读一些:

另外,我将在
中使用
而不是
,以便更容易地将其与where子句的其余部分结合起来,而不必太担心括号:

current_date() - interval 1 day

在我看来,只说以下几句会更简单

WHERE offers.date in (current_date(), current_date() - interval 1 day)
也可能是

WHERE offers.date >= CURDATE() - INTERVAL 1 day

注意:如果offers.date是日期时间值,则此操作将失败,因为(2017-01-02)<(2017-01-02 12:34:56),因为2017-01-02实际上是2017-01-02 00:00

(CURDATE()-1)有什么错:它可以正常工作。@murtaza.webdev在所有情况下都不起作用:如果CURDATE()是6月1日,减去1将导致6月0日。。看见
WHERE offers.date in (current_date(), current_date() - interval 1 day)
WHERE offers.date >= CURDATE() - INTERVAL 1 day
  offers.date between (current_date() - interval 1 day) and current_date