我有一个带有日期列的数据库,该日期在创建新的“联系人”时进行记录。当呼叫中心收到新的呼叫或电子邮件时,将生成联系人。
我想要的是where子句,以捕获最近13个月的完整数据。
例子:
我的代码如下:
WHERE
dbo.ub_contact.contact_dt BETWEEN DATEADD(year, -1, (DATEADD(month, DATEDIFF(month, -1, getdate()) - 1, -1) + 1))
AND DATEADD(month, DATEDIFF(month, -1, getdate()) - 1, -1)
今天(2015年1月30日)运行了该代码,似乎在2014年1月1日-2014年12月31日返回。
我会很乐意解决这个问题。
谢谢!
约翰
使用此日期:
SELECT EOMONTH(DATEADD(mm, -1, GETDATE()))
SELECT DATEADD(dd, 1, EOMONTH(DATEADD(mm, -14, GETDATE())))
因此,您的where子句看起来像:
WHERE dbo.ub_contact.contact_dt BETWEEN DATEADD(dd, 1, EOMONTH(DATEADD(mm, -14, GETDATE()))) AND EOMONTH(DATEADD(mm, -1, GETDATE()))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句