首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

SQL Server 存儲過程:根據時間條件執行不同查詢語句

     編輯:程式設計綜合問答

需求

存儲過程中判斷當前時間:00:00–08:00 執行查詢 A,其餘時間執行查詢 B。

實現代碼

CREATE PROCEDURE usp_SelectByTime
AS
BEGIN
    DECLARE @CurrentHour INT = DATEPART(HOUR, GETDATE());

    IF @CurrentHour BETWEEN 0 AND 7  -- 0點到7點59分
    BEGIN
        SELECT * FROM TableA;
    END
    ELSE
    BEGIN
        SELECT * FROM TableB;
    END
END

關鍵點

  • 使用 `DATEPART(HOUR, GETDATE())` 獲取當前小時(0-23)。
  • `IF ... BEGIN ... END` 結構清晰,支持多語句塊。
  • 避免使用 `CASE WHEN` 返回 SQL 字符串再動態執行,`IF` 直觀且性能更好。

擴展:參數化時間判斷

若需靈活配置時間段,可建立配置表存儲起始/結束小時,存儲過程讀取配置表再判斷。

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