2011年5月12日 星期四

T-SQL 計算日期的週別

這邊記錄一下用 T-SQL 計算週別的公式

如果以星期日 ~ 星期六為一週的話
直接用 datepart(wk, @TargetDate) 就可以抓出正確的週別了

但是如果是星期五 ~ 星期四為一週
或星期一 ~ 星期日為一週呢?

可以利用下面的公式算出對應的週別

@TargetDate 是要查詢的日期
@StartNo 是指星期幾開始
(ex. 星期五 ~ 星期四為一週, @StartNo = 5)

   case when (datepart(dy, @TargetDate) - @StartNo) <= 0 then 1
   else datepart(wk, @TargetDate - @StartNo) end