Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在SQL Server 2008中查询具有日期/时间筛选器的表_Sql Server - Fatal编程技术网

Sql server 在SQL Server 2008中查询具有日期/时间筛选器的表

Sql server 在SQL Server 2008中查询具有日期/时间筛选器的表,sql-server,Sql Server,我的数据库中有一个表。这张桌子叫Order。它的结构是这样的 身份证 客户ID 订单日期 数量 价格 我需要得到过去两周的所有订单。我该怎么做?我不明白如何在SQL中以这种方式处理日期 谢谢大家! 您可以在WHERE子句中包含这样的内容: WHERE OrderDate >= DATEADD(day,-14,GetDate()) (即订单日期比今天晚14天。) [我在这里没有访问SQL Server的权限,因此无法检查它-但它可能会工作:)] 编辑:根据OrderDate的确切数据类

我的数据库中有一个表。这张桌子叫Order。它的结构是这样的

  • 身份证
  • 客户ID
  • 订单日期
  • 数量
  • 价格
我需要得到过去两周的所有订单。我该怎么做?我不明白如何在SQL中以这种方式处理日期


谢谢大家!

您可以在
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())