You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL存储过程查询当前时间及星期几(入门级)

SQL存储过程实现获取当前时间与星期教程

不同数据库的内置时间函数语法存在差异,以下提供主流数据库的可直接运行实现方案,核心逻辑是剔除日期部分仅保留时分秒,同时转换出对应星期名称。

核心实现逻辑

  • 调用数据库内置系统时间函数获取当前完整时间戳
  • 对时间戳做类型转换,提取时分秒部分,丢弃年月日日期信息
  • 通过日期函数获取当前时间对应的星期枚举值,再转义为可读的星期名称(如周一)
  • 可按需添加校验逻辑,判断当前时间是否符合你项目中要求的特定区间

MySQL 实现示例

创建存储过程代码

DELIMITER //
CREATE PROCEDURE GetCurrentTimeAndWeekday()
BEGIN
    -- 声明变量存储结果
    DECLARE cur_time TIME;
    DECLARE cur_weekday VARCHAR(10);

    -- 获取仅含时分秒的当前时间
    SET cur_time = CURTIME();
    -- 转换为中文星期名称,DAYOFWEEK返回规则:1=周日、2=周一、...、7=周六
    SET cur_weekday = CASE DAYOFWEEK(NOW())
        WHEN 1 THEN '周日'
        WHEN 2 THEN '周一'
        WHEN 3 THEN '周二'
        WHEN 4 THEN '周三'
        WHEN 5 THEN '周四'
        WHEN 6 THEN '周五'
        WHEN 7 THEN '周六'
    END;

    -- 输出查询结果,若需要对接业务代码可改为OUT参数返回
    SELECT cur_time AS 当前具体时间, cur_weekday AS 对应星期;

    -- 可选:添加自定义校验逻辑,示例为校验是否为上课时间段
    /*
    IF cur_weekday IN ('周一','周二','周三','周四','周五') AND cur_time BETWEEN '08:00:00' AND '18:00:00' THEN
        SELECT '当前属于上课时间段' AS 校验结果;
    ELSE
        SELECT '当前不属于上课时间段' AS 校验结果;
    END IF;
    */
END //
DELIMITER ;

调用方式

CALL GetCurrentTimeAndWeekday();

SQL Server 实现示例

创建存储过程代码

CREATE PROCEDURE GetCurrentTimeAndWeekday
AS
BEGIN
    SET NOCOUNT ON;
    -- 声明变量存储结果
    DECLARE @cur_time TIME;
    DECLARE @cur_weekday VARCHAR(10);

    -- 获取仅含时分秒的当前时间
    SET @cur_time = CAST(GETDATE() AS TIME);
    -- 转换为中文星期名称,DATEPART(WEEKDAY)返回规则和MySQL一致:1=周日、2=周一...7=周六
    SET @cur_weekday = CASE DATEPART(WEEKDAY, GETDATE())
        WHEN 1 THEN '周日'
        WHEN 2 THEN '周一'
        WHEN 3 THEN '周二'
        WHEN 4 THEN '周三'
        WHEN 5 THEN '周四'
        WHEN 6 THEN '周五'
        WHEN 7 THEN '周六'
    END;

    -- 返回查询结果
    SELECT @cur_time AS 当前具体时间, @cur_weekday AS 对应星期;
END

调用方式

EXEC GetCurrentTimeAndWeekday;

注意事项

  • 若需要英文星期名称,可直接替换CASE语句中的中文值,MySQL也可以直接调用DAYNAME(NOW())直接获取英文星期名
  • 部分数据库的星期起始规则可能存在配置差异,正式使用前可以单独执行DAYOFWEEK(NOW())(或对应数据库的星期函数)确认返回值和实际星期的对应关系,避免匹配错误
  • 存储过程的返回形式可以根据项目需求调整,比如新增OUT参数把结果直接传递给上层业务代码,不需要直接返回查询结果

内容的提问来源于stack exchange,提问作者mike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 11:06:04