真的很長的故事總結,我有一個表中我有兩個日期時間字段,我加載到變量@DateFrom和@DateTo,我需要「解釋「他們在屏幕上顯示文字的範圍。儘管字段是日期時間,但時間部分將被忽略。我還聲明@Current作爲日期時間來保存getDate()的結果,以防我需要在比較之前剝離時間。T-SQL尋找總結開始和結束日期範圍的最簡潔的方式
由於這種事情不是非常罕見,我希望以前有人做過。
一些例子(我將使用@Current 2015年4月6日,今天的日期):
If @DateFrom is April 6, 2015, and @DateTo is also April 6, 2015, return "Today"
If @DateFrom is April 5, 2015, and @DateTo is also April 5, 2015, return "Yesterday"
If @DateFrom is April 2, 2015, and @DateTo is April 6, 2015, return "Last 4 days"
If @DateFrom is March 29, 2015, and @DateTo is April 4, 2015, return "Last week"
(March 29 is Sunday, and April 4 is Saturday).
If @DateFrom is April 1, 2015, and @DateTo is April 30, 2015, return "This month"
If @DateFrom is March 1, 2015, and @DateTo is March 31, 2015, return "Last month"
If @DateFrom is March 28, 2015, and @DateTo is April 5, 2015,
return "From March 28, 2015 To April 5, 2015"
(because it doesn't fit any of the standard date ranges).
我希望有人公佈了一個函數的代碼或存儲過程做到這一點還是非常相似的地方,所以我不必重新發明輪子。
爲什麼'@ Current'只是'DATE',因爲「時間分量將被忽略」? –
好點,無論如何使最終的代碼儘可能乾淨和容易。 – Dan