假设我有一个存储客户订单ID的表格。如
| 客户编号| 订单编号| 订购日期
我如何获得今天已下订单的所有客户?
而且OrderDate将是一个DateTime。
就像是
SELECT DISTINCT CustomerID FROM TableName Where OrderDate > Today
但是最后一部分是我不知道的。
仅希望日期时间之外的日期是相当普遍的-您应该可以向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的。
DATEDIFF(dd, 0, GETDATE())
DATEADD(dd, 0, x)
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)