Skip to content

Note

不挑戰記憶力的技術筆記

Menu
Menu

[SQL] 產生年度行事曆、判斷指定日期是否為假日

Posted on 2015 年 9 月 24 日 by febr

想知道今天是星期幾,可以用DATEPART,星期日回傳0、星期一回傳1,以此類推:

SELECT DATEPART(WEEKDAY, GETDATE())

 

若要產生一整年的日曆,並排除禮拜六日的做法,可利用DATEDIFF做到,

只要知道哪天是禮拜一,算出差異的天數並取7的餘數,再除掉上班日天數(5天),

從結果為1或0來判斷是否為周末,就能產生整年的行事曆:

DECLARE @sdate DATETIME, @edate DATETIME;
SET @sdate = '20150101';
SET @edate = '20151231';

WITH cte AS (
	SELECT workDate = @sdate
	UNION ALL
	SELECT workDate + 1 FROM cte WHERE (workDate < @edate)
)
SELECT workDate
FROM cte
WHERE DATEDIFF(DAY, '19000101', workDate) % 7 / 5 = 0

OPTION (MAXRECURSION 0);
--MAXRECURSION 0表示不設限,預設最大遞迴 100

 

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

近期文章

  • [AWS] S3 Object Initiate restore (復原回 Standard)
  • [Windows] 使用者快速登出的方法 Logout/ Logoff/Sign Out from Windows User Account
  • [Windows] Windows 11 安裝Server管理工具Install RSAT(Remote Server Administrator Tools)
  • Chrome出現:你的連線不是私人連線 Your connection is not private
  • [C#] 取得 Request URL 的方法

近期留言

    彙整

    分類

    • Ajax
    • Android
    • ASP
    • ASP.NET MVC
    • Azure
    • C#
    • Cisco
    • CSS
    • Delphi
    • Developer Tools
    • Framework
    • FreeBSD
    • Git
    • HTML5
    • javascript
    • jQuery
    • Juniper
    • Linux
    • Mac
    • PHP
    • Python
    • Server&OS
    • Software
    • SQL server
    • Sublime Text
    • Ubuntu
    • Visual Studio
    • Vmware
    • Web Design
    • Web Development
    • Windows
    • WordPress
    • 未分類
    • 未分類

    彙整

    分類

    • Ajax
    • Android
    • ASP
    • ASP.NET MVC
    • Azure
    • C#
    • Cisco
    • CSS
    • Delphi
    • Developer Tools
    • Framework
    • FreeBSD
    • Git
    • HTML5
    • javascript
    • jQuery
    • Juniper
    • Linux
    • Mac
    • PHP
    • Python
    • Server&OS
    • Software
    • SQL server
    • Sublime Text
    • Ubuntu
    • Visual Studio
    • Vmware
    • Web Design
    • Web Development
    • Windows
    • WordPress
    • 未分類
    • 未分類

    其他操作

    • 登入
    • 訂閱網站內容的資訊提供
    • 訂閱留言的資訊提供
    • WordPress.org 台灣繁體中文
    © 2025 Note | Powered by Superbs Personal Blog theme