Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 日期间隔在一个月的15日更改_Sql_Loops_Date_Intervals - Fatal编程技术网

Sql 日期间隔在一个月的15日更改

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()来获得您想要的范围

我正在寻找一种方法,让我的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 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)