如何编写使用时间损耗的查询(例如,在1天内,2天内)?

时间:2011-12-15 18:58:30

标签: sql sql-server

我2桌: 启用 禁用

每个表都与DateId绑定到存储日期的日期表。

如何编写查询以便我可以在禁用表中获取在启用表中有条目的1,2或3天内禁用的行?

感谢您的帮助

1 个答案:

答案 0 :(得分:6)

使用DATEDIFF!它工作得很好,并返回日期差异。

select
    *
from
    disable d
    inner join enable e on
        d.Id = e.Id
where
    datediff(day, e.DateId, d.DateId) between 1 and 3

您也可以根据自己的喜好使用它。 DATEDIFF也可以倒退,所以你可以datediff(day, d.DateId, e.DateId) between -3 and -1,如果这让你感到满意。