t-SQL查询复杂的滚动月份

时间:2015-08-06 17:36:44

标签: sql sql-server-2008 tsql

要求是,我们需要以下记录' production_date':

今天=' 2015-08-06 00:00:00.000'。

截至今天,只有 JULY 中的production_date。

SEPT 中,production_date来自 7月 8月

OCT 7月,8月和9月中的production_date ..等等..

但一旦进入 2016年1月,则生产日期仅来自过去6个月

这意味着 2016年2月 2015年8月至2016年1月的作品日期

其他信息:

Production_date是一个日期列。并且我根据上述条件过滤记录。

我试过了:

Production_Date> DATEADD(月,DATEDIFF(月,0,DATEADD(MM,DATEDIFF(m,DATEADD(月,DATEDIFF(月,0,GETDATE()),0),' 2016-01-01 00:00:00.000 ') - 6,GETDATE())),0)

AND

Production_Date< DATEADD(月,DATEDIFF(月,0,GETDATE()),0)

请让我知道如何在查询中解决这个问题。

1 个答案:

答案 0 :(得分:0)

SELECT  columnlist
FROM    table
WHERE   ProductionDate >= DATEADD(MONTH, -6,
                                  DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()),
                                          0))
        AND ProductionDate < DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0)
        AND ProductioNDate >= '2015-07-01'