2017-02-17 256 views
0

本網站新增功能,因此盡力在提問時按照說明操作。我正在創建一個報告,並且遇到了一個我不得不拉入的日期,稱爲發佈日期。如果發票日期是25日或之前,此日期應在報表中作爲發票月份的第25天返回。如果發票日期在本月25日之後,我需要postdate反映下個月的25日。我一直在嘗試病例陳述,但沒有運氣。發佈日期發票日期邏輯

這是我目前使用的行:

case 
    when (DAY(CT.HLSINVOICEDATE) < 26) 
     then (Month(CT.HLSINVOICEDATE + '/25' + Year(CT.HLSINVOICEDATE))) 
    else DATEADD(MM, 1, CT.HLSInvoiceDate) + '/25' + YEAR(CT.HLSInvoiceDate) 
    end as [Post Date] 

例如,如果我的發票日期爲07年2月17日我想要的發佈日期是17年2月25日,但是,如果發票日期是2/26/17我希望發佈日期爲3/25/17。感謝您提前提供任何幫助。嘗試執行此操作時出現轉換錯誤。我正在使用SQLServer 2008 R2。謝謝!

回答

0

下面的查詢應該給你預期的結果。

SELECT case 
    when (DAY(CT.HLSINVOICEDATE) < 26) 
     then CAST(Month(CT.HLSINVOICEDATE)as varchar(2)) + '/25/' + CAST(Year(CT.HLSINVOICEDATE) as varchar(4)) 
    else CAST((Month(CT.HLSINVOICEDATE)+1)as varchar(2)) + '/25/' + CAST(YEAR(CT.HLSInvoiceDate) as varchar(4)) 
    end as [Post Date]