DATEPART 函数分配

DATEPART function assigning

我有table今天和昨天(18,17)下单

我需要找到那些结果。

select A.C_Name 
from Customer_Table A
 inner join
 Order_Table O
   On A.C_ID=O.C_ID
   where DATEPART(DAY,Order_Date)=GetDATE() and
  DATEPART(DAY,Order_Date)=GETDATE()-1

我没有得到上述查询的结果。

如果你想要今天和昨天的订单,那么这应该足够了:

where Order_Date >= dateadd(day, -1, cast(getdate() as date))

(假设没有未来的订单日期,这似乎是合理的)。

由于多种原因,您的查询一团糟。 datepart() returns 一个整数,您正在将它与日期进行比较。仅查看日期的 "day" 部分在该月的第一天不起作用。而且,getdate()——尽管它的名字——有一个时间部分,所以直接相等是不合适的。