我有一個報告可以計算多種日期差異(在工作日內,而不是DATEDIFF),因爲各種業務原因太過無聊。計算兩個日期之間的差異
基本上查詢(現在)看起來像
SELECT -- some kind of information
DATEDIFF(dd, DateOne, DateTwo) AS d1_d2_diff,
DATEDIFF(dd, DateOne, DateThree) AS d1_d3_diff,
DATEDIFF(dd, DateTwo, DateThree) AS d2_d3_diff,
DATEDIFF(dd, DateTwo, DateFour) AS d2_d4_diff
FROM some_table;
我可以改變這個計算中使用標量函數,但我不想標量函數中的每一行執行4次結果集。
我在數據庫中有一個萬年曆錶:
CREATE TABLE Calendar (
Date DATETIME NOT NULL,
IsWeekday BIT,
IsHoliday BIT
);
會表值函數和CROSS APPLY在這裏一個好的選擇嗎?如果是這樣,我會如何去寫這樣的事情?或者是一個標量函數我最好的選擇?
重要注意事項我們的數據庫中的所有日期值都已被刪除,因此忽略任何將日期重置爲午夜的代碼是安全的。
你知道的工作,我應該提到,我所有的日期是在午夜。我會在頂部添加。 – 2009-04-23 19:49:27