首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

應用技巧:用 SQL Server 判斷閏年的高效函數

     編輯:關於SqlServer

判斷某年是否為閏年,常見誤區以為「能被 4 整除即是」,實則 1900 年即為反例。無需死記規則,直接利用 SQL Server 日期運算即可輕鬆搞定。

核心邏輯

將輸入年份組合為「2 月 28 日」,再加一天:若結果仍在 2 月(月份 = 2),則該年為閏年(因 2 月有 29 日);否則為平年。

函數實作

CREATE FUNCTION dbo.fn_IsLeapYear (@year INT)
RETURNS BIT
AS
BEGIN
    RETURN (
        SELECT CASE DATEPART(MM, DATEADD(DD, 1, CAST((CAST(@year AS VARCHAR(4)) + '0228') AS DATETIME)))
            WHEN 2 THEN 1
            ELSE 0
        END
    );
END;
GO

測試範例

SELECT dbo.fn_IsLeapYear(1900) AS IsLeapYear; -- 0
SELECT dbo.fn_IsLeapYear(2000) AS IsLeapYear; -- 1
SELECT dbo.fn_IsLeapYear(2007) AS IsLeapYear; -- 0
SELECT dbo.fn_IsLeapYear(2008) AS IsLeapYear; -- 1

函數執行結果

圖:函數執行結果

善用資料庫引擎內建日期運算,能以極簡代碼解決看似棘手的邏輯判斷。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved