Sql server 在SQL Server 2008中查询具有日期/时间筛选器的表
我的数据库中有一个表。这张桌子叫Order。它的结构是这样的Sql server 在SQL Server 2008中查询具有日期/时间筛选器的表,sql-server,Sql Server,我的数据库中有一个表。这张桌子叫Order。它的结构是这样的 身份证 客户ID 订单日期 数量 价格 我需要得到过去两周的所有订单。我该怎么做?我不明白如何在SQL中以这种方式处理日期 谢谢大家! 您可以在WHERE子句中包含这样的内容: WHERE OrderDate >= DATEADD(day,-14,GetDate()) (即订单日期比今天晚14天。) [我在这里没有访问SQL Server的权限,因此无法检查它-但它可能会工作:)] 编辑:根据OrderDate的确切数据类
- 身份证
- 客户ID
- 订单日期
- 数量
- 价格
谢谢大家! 您可以在
WHERE
子句中包含这样的内容:
WHERE OrderDate >= DATEADD(day,-14,GetDate())
(即订单日期比今天晚14天。)
[我在这里没有访问SQL Server的权限,因此无法检查它-但它可能会工作:)]
编辑:根据OrderDate的确切数据类型,我不确定在您有订单的情况下会发生什么,例如,两周前一天的一半,因此您可能需要检查发生了什么。您可以在
where
子句中包含类似的内容:
WHERE OrderDate >= DATEADD(day,-14,GetDate())
(即订单日期比今天晚14天。)
[我在这里没有访问SQL Server的权限,因此无法检查它-但它可能会工作:)]
编辑:根据OrderDate的确切数据类型,我不确定在您有订单的情况下会发生什么,例如,两周前一天的一半,因此您可能希望检查发生了什么。marnir回答是这样做的,但这是除OrderDate>之外的另一个选项:
select * from Order
where [OrderDate]
BETWEEN DATEADD(dd, -14, GetDate()) AND GetDate()
marnir答案是实现这一点的方法,但这是另一个选项,不包括OrderDate>today:
select * from Order
where [OrderDate]
BETWEEN DATEADD(dd, -14, GetDate()) AND GetDate()
这里是另一种可能的检索过去两周内下单的方法。这是假设
OrderDate
是数据类型datetime
的列。屏幕截图#1显示了名为dbo.[Order]
的表中的示例数据,类似于您的要求和下面针对该表数据的查询输出。此查询已在SQL Server 2008 R2中测试,但也与其他SQL Server版本兼容
SELECT Id
, CustomerId
, OrderDate
, Quantity
, Price
FROM dbo.[Order]
WHERE DATEDIFF(WEEK, OrderDate, GETDATE()) <= 2
选择Id
,客户ID
,订购日期
量
,价格
来自dbo。[订单]
其中DATEDIFF(WEEK,OrderDate,GETDATE())这里有另一种可能的方法来检索最近2周内下的订单。这是假设OrderDate
是数据类型datetime
的列。屏幕截图#1显示了名为dbo.[Order]
的表中的示例数据,类似于您的要求和下面针对该表数据的查询输出。此查询已在SQL Server 2008 R2中测试,但也与其他SQL Server版本兼容
SELECT Id
, CustomerId
, OrderDate
, Quantity
, Price
FROM dbo.[Order]
WHERE DATEDIFF(WEEK, OrderDate, GETDATE()) <= 2
选择Id
,客户ID
,订购日期
量
,价格
来自dbo。[订单]
其中DATEDIFF(周、OrderDate、GETDATE())