小编典典

SQL语句帮助-选择今天订购的客户

sql

假设我有一个存储客户订单ID的表格。如

| 客户编号| 订单编号| 订购日期

我如何获得今天已下订单的所有客户?

而且OrderDate将是一个DateTime。

就像是

SELECT DISTINCT CustomerID
FROM TableName
Where OrderDate > Today

但是最后一部分是我不知道的。


阅读 175

收藏
2021-05-23

共1个答案

小编典典

仅希望日期时间之外的日期是相当普遍的-您应该可以向Google索取RDBMS的详细信息(因为您没有提到它)。重要的一点是通过转换 今天的
日期1-而不是定单日期来使您的查询可保存。 __

对于MSSQL,类似

SELECT DISTINCT CustomerID
FROM TableName
--I assume you want midnight orders as well - so use >=
Where OrderDate >= DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))

通过从日期0(DATEDIFF(dd, 0, GETDATE()))提取今天的天数并将其添加回日期0(DATEADD(dd, 0, x))可以正常工作。不过,这是特定于T-SQL的。

1如果您要搜索任意日期,则仍将转换两个参数:

SELECT DISTINCT CustomerID
FROM TableName
Where 
    OrderDate >= DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
    --You *do not* want midnight of the next day, as it would duplicate orders
    AND OrderDate < DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()) + 1)
2021-05-23