1
我在每個季度上個月的第一個日期安排工作時遇到問題。 這將是很容易的,因爲我可以得到每季度的最後一個月,然後第一次約會追加到它像按季度計算日期
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
查詢應該如何修改?我認爲可能會涉及一些數學,我真的不擅長數學。 請幫忙。
感謝
大衛
能否請您解釋查詢背後的邏輯。謝謝PS START_DATE可以是從1日到31日的任何日期。它不一定是15. –
@davidmichell - 當然,我已經更新了答案。 –
感謝Mikael。得到它了。超。感謝您的查詢和詳細的解釋 –