WITH table_CTE AS
(
    -- 設定遞迴的初始值
    SELECT CAST('20170101' AS datetime) AS Date  
    UNION ALL
    -- 觸發遞迴查詢
    SELECT DATEADD(dd,1,Date)
    FROM table_CTE
    WHERE Date < CAST('20171231' AS datetime)
)
SELECT Date , DATENAME(dw,Date) AS dw
FROM table_CTE --遞迴
WHERE DATEPART(dw,Date) IN (1,7) -- 判斷星期條件
OPTION (MAXRECURSION 0) -- CTE的遞迴終止條件


說明:
判斷星期條件
星期日=第1天
星期一=第2天
星期二=第3天
星期三=第4天
星期四=第5天
星期五=第6天
星期六=第7天


參考網站
DATEPART https://docs.microsoft.com/zh-tw/sql/t-sql/functions/datepart-transact-sql
CTE https://docs.microsoft.com/zh-tw/sql/t-sql/queries/with-common-table-expression-transact-sql


文章標籤
創作者介紹
創作者 Roger 的頭像
Roger

歡迎~ 程式設計 學生 作業 專題製作 程式外包 家教...

Roger 發表在 痞客邦 留言(0) 人氣()