IDT - 如何从当前月份

时间:2017-10-26 14:20:42

标签: sql date case getdate

这是我到目前为止所拥有的。 我正在尝试使用始终显示上个月的过滤器。 以下查询适用于除1月以外的所有月份。

DateDim_End_Date.YEAR=year(getDate())
and DateDim_End_Date.MONTHNUMBER = month(getDate())-1

我正在尝试像

这样的东西
CASE WHEN (DateDim_End_Date.MONTHNUMBER = month(getDate())) = 1 THEN 
(DateDim_End_Date.YEAR=year(getDate())-1
and DateDim_End_Date.MONTHNUMBER = month(getDate())-1)
WHEN DateDim_End_Date.MONTHNUMBER = month(getDate())) != 1 THEN 
(DateDim_End_Date.YEAR=year(getDate())
and DateDim_End_Date.MONTHNUMBER = month(getDate())-1)
END

它不一定是CASE声明来解决这个问题,这只是我最初的方法 提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

DateDim_End_Date.YEAR=year(getDate())
and DateDim_End_Date.MONTHNUMBER = month(DATEADD(MONTH, -1, getDate()))

这将解决1月份的问题,因为您现在首先从确定新月份之前的某个日期减去一个月。

但是,将日期存储在单个日期/日期时间列中要容易得多。