我有一个名为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
答案 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日至一年前“发送日期”的所有记录。