Sql 日期间隔在一个月的15日更改
我正在寻找一种方法,让我的sql查询在每个月的15号更改查询中的日期,这样我的数据拉取就有一个“滚动的12个月”。例如,现在,我的查询提取2018411和2019410之间的日期(yyyqmm)。我对它进行了硬编码,所以它看起来像这样:Sql 日期间隔在一个月的15日更改,sql,loops,date,intervals,Sql,Loops,Date,Intervals,我正在寻找一种方法,让我的sql查询在每个月的15号更改查询中的日期,这样我的数据拉取就有一个“滚动的12个月”。例如,现在,我的查询提取2018411和2019410之间的日期(yyyqmm)。我对它进行了硬编码,所以它看起来像这样: Select * From Table WHERE Spend_Period_YYYYQMM >= 2018411 and Spend_Period_YYYYQMM <= 2019410 我们可以使用一些和GetDate()来获得您想要的范围
Select *
From Table
WHERE Spend_Period_YYYYQMM >= 2018411 and Spend_Period_YYYYQMM <= 2019410
我们可以使用一些和GetDate()来获得您想要的范围
然后,在您的查询中,它将是:
Select *
From Table
WHERE Spend_Period_YYYYQMM BETWEEN (Select YearBegin from #YYYYQMM) AND (Select YearEnd from #YYYYQMM)
我们可以使用一些和以及GetDate()来获得所需的范围
然后,在您的查询中,它将是:
Select *
From Table
WHERE Spend_Period_YYYYQMM BETWEEN (Select YearBegin from #YYYYQMM) AND (Select YearEnd from #YYYYQMM)
获取当月第一天(例如,TRUNC(当前日期,'M')
,再加上15天,然后继续当前计算获取当月第一天(例如,TRUNC(当前日期,'M')
,再加上15天,然后继续当前计算
Select cast(concat(datepart(yyyy,RollingYearBegin), datepart(q,RollingYearBegin), datepart(MM,RollingYearBegin)) as bigint) as YearBegin
,cast(concat(datepart(yyyy,RollingYearEnd), datepart(q,RollingYearEnd), datepart(MM,RollingYearEnd)) as bigint) as YearEnd
into #YYYYQMM
From #RollingYear
Select *
From Table
WHERE Spend_Period_YYYYQMM BETWEEN (Select YearBegin from #YYYYQMM) AND (Select YearEnd from #YYYYQMM)