0
你好SOF社區:僅一天派生日期(1,2,3..31),基於當前日期
我有這樣
InvoicingActivityStartDay InvoicingActivityEndDay
27 26
27 26
01 NULL --NULL MEANS LAST DAY OF MONTH
01 NULL
15 14
一個表,我需要一個T-SQL在給定當前日期的情況下,將返回以上數據的查詢;如果當前日期= 12-JAN-2012,結果應該是如下
InvoicingActivityStartDATE InvoicingActivityEndDATE
27-DEC-2011 12:00:00.000 26-JAN-2012 23:59:99.999
27-DEC-2011 12:00:00.000 26-JAN-2012 23:59:99.999
01-DEC-2011 12:00:00.000 31-DEC-2011 23:59:99.999
01-DEC-2011 12:00:00.000 31-DEC-2011 23:59:99.999
15-DEC-2011 12:00:00.000 14-JAN-2012 23:59:99.999
能否請你告訴我如何在單個查詢做到嗎?
請注意,如果開始日期爲1,則表示結束日始終是上個月的最後一天。
是否應將開始日解釋爲上個月的那天? – GilM
需要更多信息。如果第一個col = 2,你會得到Dec2-Jan2還是Jan2-Feb2?或者,什麼時候返回的範圍包括CURRENTDATE,什麼時候沒有?另外,第二列是什麼?你是否需要'通過'在下個月的第一個交易日前一天'第一個交易日',根據所提供的'第一個月的特殊規則'修改? –
該表保存相對於當前日期的值。 如果發票開始日期爲1,則發票結束日期始終是本月的結束日期;如果開具發票日不是1,則明確提及結束日。 例如,今天是2011年12月13日。當我今天運行查詢時,對於Start Day = 1的行,它應該返回2011年1月1日30-NOV-2011(格式無關緊要)。 如果開始日期= 27,那麼今天運行的查詢應該返回,27-NOV-2011和26-DEC-2011 我可以使用C#擴展方法執行此操作。但只是探討它是否可以在SQL中完成。謝謝。 – FMFF