我的数据库中有一个表格。该表被称为Order。它有这样的在SQL Server 2008中查询带有日期/时间过滤器的表格
- ID
- 客户ID
- 订购日期
- 数量
- 价格
我需要把所有的订单,为过去2周的结构。我怎么做?我不明白如何在SQL中以这种方式处理日期。
谢谢!
我的数据库中有一个表格。该表被称为Order。它有这样的在SQL Server 2008中查询带有日期/时间过滤器的表格
我需要把所有的订单,为过去2周的结构。我怎么做?我不明白如何在SQL中以这种方式处理日期。
谢谢!
您可以纳入这样的事情到您的WHERE
条款:(即订购日期比今天减去14天更近)
WHERE OrderDate >= DATEADD(day,-14,GetDate())
[我没有SQL Server访问这里所以我不能检查它 - 但它可能工作:)]
编辑:根据确切的数据类型的OrderDate,我不知道如果你有例如一个订单在两周前的一天的一半,所以你可能想检查会发生什么。
marnir答案是做到这一点,但这是>今天不包括订购日期另一种选择:
select * from Order
where [OrderDate]
BETWEEN DATEADD(dd, -14, GetDate()) AND GetDate()
这里是检索放在最后2 weeks
订单的另一种可能的方式。假定OrderDate
是数据类型为datetime
的列。屏幕截图#在类似于您的要求的名为dbo.[Order]
的表中显示示例数据,并针对该表数据输出以下查询。此查询在SQL Server 2008 R2中进行了测试,但也与其他SQL Server版本兼容。
SELECT Id
, CustomerId
, OrderDate
, Quantity
, Price
FROM dbo.[Order]
WHERE DATEDIFF(WEEK, OrderDate, GETDATE()) <= 2
希望有帮助。
屏幕截图