试图显示大于十天的日期

时间:2014-12-07 16:51:53

标签: sql sql-server

我正在尝试创建一个SQL语句,该语句计算未交付产品的交付相对于当前日期的延迟天数。结果应显示订单行的订单号,订单日期,产品编号和延迟天数,延迟天数超过10天。

到目前为止,这是我的SQL语句:

SELECT 
    Orderhuvuden.ordernr, 
    orderdatum, 
    Orderrader.produktnr,
    datediff(day, orderdatum, isnull(utdatum, getdate())) as 'Delay days'
FROM 
    Orderhuvuden 
JOIN 
    Orderrader ON Orderhuvuden.ordernr = Orderrader.ordernr AND utdatum IS NULL

我遇到的问题是解决如何显示超过10天的延迟天数。我试图添加类似的内容:

WHERE (getdate() - orderdatum) > 10

但它不起作用。有谁知道如何解决这最后一步?

3 个答案:

答案 0 :(得分:11)

将此添加到您的where子句:

AND DATEDIFF(day, orderdatum, getdate()) > 10

答案 1 :(得分:2)

如果你想要的条件是:

WHERE (getdate()-orderdatum) > 10

只需将其重写为:

WHERE orderdatum < getdate() - 10

或者:

WHERE orderdatum < dateadd(day, -10, getdate())

这些也是&#34; sargable&#34;意味着orderdatum上的索引可以用于查询。

答案 2 :(得分:1)

对我而言,您似乎需要将其添加到WHERE子句中。

datediff(day, orderdatum, isnull(utdatum, getdate())) > 10