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

MySQL Workbench创建日期格式化函数报错:Truncated incorrect Double value:'st'

问题解决:MySQL函数字符串拼接错误修正

错误原因

MySQL里的+是算术加法运算符,不是字符串连接符。你用+拼接字符串(比如'st')和数字(比如DAY(getData))时,MySQL会尝试把字符串转成数值类型,而'st'这类文本无法转换成有效数字,就会触发Truncated incorrect Double value:'st'的错误。

修正后的函数代码

用MySQL的CONCAT()函数来做字符串拼接,这是MySQL中正确的字符串连接方式:

CREATE DEFINER=`root`@`localhost` FUNCTION `getDate`(getData date) RETURNS varchar(40) CHARSET utf8mb4
    DETERMINISTIC
BEGIN
RETURN CONCAT(
    DAYNAME(getData), ' ',
    DAY(getData),
    CASE
        WHEN DAY(getData) IN (1, 21, 31) THEN 'st'
        WHEN DAY(getData) IN (2, 22) THEN 'nd'
        WHEN DAY(getData) IN (3, 23) THEN 'rd'
        ELSE 'th'
    END,
    ' ', MONTHNAME(getData), ' ',
    YEAR(getData)
);
END

说明

  • CONCAT()可以接收多个参数,按顺序拼接成一个字符串,不需要额外的连接符
  • 日数和后缀(st/nd/rd/th)直接放在CONCAT的参数里,自动完成拼接
  • 保留了你原有的日期后缀判断逻辑,确保输出格式符合要求:Monday 1st January 2022

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 05:55:29