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

使用TIME数据类型的存储函数无法运行,需实现AM/PM时间判断

修复TIME类型判断AM/PM的MySQL存储函数

你的存储函数无法正常工作是因为存在语法错误和结构不完整,具体问题和修复方案如下:

存在的问题

  • 声明变量的语句末尾缺少分号:DECLARE am_or_pm varchar(20) 未以;结尾
  • IF条件判断结构不完整:没有END IF;来闭合逻辑块
  • 函数定义未收尾:缺少END //来结束函数体,也未重置语句分隔符

修正后的完整代码

DELIMITER //
CREATE FUNCTION am_or_pm (crying_time TIME)
RETURNS varchar(20) 
DETERMINISTIC
BEGIN 
    DECLARE am_or_pm varchar(20); -- 补充分号
    IF crying_time <= '11:59:00' THEN 
        SET am_or_pm = 'AM';
    ELSEIF crying_time >= '12:00:00' THEN
        SET am_or_pm = 'PM';
    END IF; -- 闭合IF逻辑
END // -- 结束函数体
DELIMITER ; -- 重置分隔符为默认值

额外说明

  • TIME类型的值可以直接和时间格式的字符串(如'11:59:00')比较,MySQL会自动进行隐式类型转换
  • 如果需要更严谨的写法,可以把字符串转为TIME类型,比如crying_time <= TIME('11:59:00'),效果一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 17:31:10