【问题标题】:t-SQL query complex rolling monthst-SQL查询复杂滚动个
【发布时间】:2015-08-06 17:36:44
【问题描述】:

要求是,我们需要“生产日期”以下的记录:

today='2015-08-06 00:00:00.000'。

截至今天,production_date 仅在 7 月

9 月,生产日期为 7 月8 月

OCT,生产日期为7 月、8 月和 9 月 ..等等..

但一次 2016 年 1 月,生产日期仅来自 过去 6 个月

这意味着从 2016 年 2 月,productions_date 从 2015 年 8 月到 2016 年 1 月

附加信息:

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

我试过了:

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

Production_Date

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

【问题讨论】:

  • 你想要什么?查询还是自定义函数?你有什么尝试吗?你能举例说明你将如何使用它吗?
  • 嗨 Emacs,我想要一个带有可以过滤上述条件的表达式的查询。

标签: sql sql-server-2008 tsql


【解决方案1】:
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'

【讨论】:

  • 谢谢!如果解决了您的问题,请将其标记为答案。
猜你喜欢
  • 2011-01-17
  • 1970-01-01
  • 1970-01-01
  • 2011-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多