【SQL】計算本週日期區間

getdate() '代表今天日期

星期日代表一周的第一天
星期六代表一周的最後一天

格式 :
SELECT DATEADD(week, DATEDIFF(week, '', getdate()), -1) as 星期日
SELECT DATEADD(week, DATEDIFF(week, '', getdate()), 0) as 星期一 OR SELECT DATEADD(week, DATEDIFF(week, '', getdate()), '') as 星期一
SELECT DATEADD(week, DATEDIFF(week, '', getdate()), 1) as 星期二
SELECT DATEADD(week, DATEDIFF(week, '', getdate()), 2) as 星期三
SELECT DATEADD(week, DATEDIFF(week, '', getdate()), 3) as 星期四
SELECT DATEADD(week, DATEDIFF(week, '', getdate()), 4) as 星期五
SELECT DATEADD(week, DATEDIFF(week, '', getdate()), 5) as 星期六

Ex:今天是2011/7/12
則上面會依序show 星期日 ~ 星期六

星期日            星期一            星期二           星期三            星期四           星期五           星期六
2011-07-10,  2011-07-11,   2011-07-12,  2011-07-13,  2011-07-14,  2011-07-15,   2011-07-16

同理,若要查詢某一天的日期區間,只要將上面getdate()換成想要的日期即可!
Ex: 2011/7/20
SELECT DATEADD(week, DATEDIFF(week, '', '2011-07-20'), -1) as 星期日
... 中間省略之 ...
SELECT DATEADD(week, DATEDIFF(week, '', '2011-07-20'), 5) as 星期六

留言

這個網誌中的熱門文章

【ASP】日期轉換(西元<-->民國)

【VB】使用NPOI元件來匯出Excel--DataTableToExcel

【SQL】符號切割字串變成多欄