【发布时间】:2015-01-30 17:02:27
【问题描述】:
我有一个数据库,其中包含一个日期列,用于记录何时创建新的“联系人”。当呼叫中心收到新的电话或电子邮件时会生成联系人。
我想要的是 where 子句捕获过去 13 个月的完整数据。
例子:
- 今天是 2015 年 1 月 30 日,如果执行该查询将返回从 2013 年 12 月 1 日到 2014 年 12 月 31 日的记录。
- 今天是 2/06/2015,如果执行查询将返回从 2014 年 1 月 1 日到 2015 年 1 月 31 日的记录。
- 查询将包括该月的第一天和最后一天的日期。
我的代码如下:
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 日返回。
对于解决此问题的任何帮助,我将不胜感激。
谢谢!
约翰
【问题讨论】:
标签: sql date where-clause sql-server-2014