各四半期の最後の月の最初の日にジョブをスケジュールする際に問題があります。これは、四半期ごとの最後の月を取得し、最初の日付を次のように追加できるため、非常に簡単です。
select START_DATE,
CONVERT(datetime,CAST(YEAR(START_DATE) as VARCHAR(4))+'/'+
CAST(DATEPART(Q,START_DATE)*3 as VARCHAR(2))+'/01 00:00:00',120
) as SCHEDULE_DATE_LAST_MONTH_OF_QUARTER
from JOB_SCHEDULE_CONFIGURATION
つまずきはSTART_DATEです。例を挙げて説明します
START_DATE SCHEDULE_DATE_LAST_MONTH_OF_QUARTER
2012/05/01 2012/06/01 --correct schedule
2012/02/15 2012/03/01 --correct schedule
2012/06/15 2012/06/01 ---problem at this line I will explain why
開始日がたまたま 2012/06/15 で、開始日 (2012/06/01) より前にジョブをスケジュールできません。2012/06/15 の後にのみスケジュールする必要があります。つまり、ジョブは次の四半期、つまり 2012/09/01 にスケジュールする必要があります。
クエリをどのように変更する必要がありますか? 数学が関係している可能性があると思いますが、私は数学が得意ではありません。助けてください。
ありがとう
デビッド