如何计算SQL Server中两个日期之间的差异

时间:2015-03-26 10:56:56

标签: sql-server-2008

我有一个名为table1的表。它有一列NT_T_SENTDATE。此列保留日期。它有自2005年以来的数据。因此这张桌子很重。

我希望在NT_T_SENTDATE列中看到日期为2013年12月至2014年12月的行。我知道有datediff方法,我已经使用了这个查询:

select * 
from notificationtransactions 
where datediff(day, NT_D_SentDate, '2015-03-25') > 360

但它也显示了比2013年更早的记录。

有人可以纠正我吗?我应该在查询中添加什么内容,以便只能查看超过1年但不超过3年的记录?

期待您的回复

POOJA

2 个答案:

答案 0 :(得分:0)

此查询将仅返回今年的记录

 SELECT *
 FROM notificationtransactions 
 WHERE NT_T_SENTDATE> DATEADD(YY, -1, GETDATE())

此查询将仅返回上一年的记录

   SELECT * 
   FROM notificationtransactions  
   WHERE  NT_T_SENTDATE BETWEEN
   DATEADD(YY, -2, GETDATE()) AND  DATEADD(YY, -1, GETDATE())

答案 1 :(得分:0)

这个怎么样:

SELECT * 
FROM dbo.NotificationTransactions 
WHERE 
    NT_D_SentDate <= '20140325' 
    AND NT_D_SentDate >= '20130101'

显示2013年1月1日至一年前“发送日期”的所有记录。