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

MySQL如何将单列年份值转换为「年份-年份」格式?

解决SQL中年份列格式化为“xxxx-xxxx”的问题

你之前用REPEAT函数的问题在于,这个函数只是单纯重复原字符串指定次数,自然不会自动添加分隔符。要实现“4位年份-4位年份”的格式,需要用字符串拼接函数把年份、连接符-、年份这三个部分组合起来。

通用解决方案(适用于MySQL、MariaDB等)

使用CONCAT函数完成拼接:

SELECT
  CASE
    WHEN CHAR_LENGTH(`Year`) = 4 THEN CONCAT(`Year`, '-', `Year`)
    ELSE `Year`
  END AS new_y
FROM xxxx;

其他数据库适配写法

  • SQL Server:如果Year是字符串类型,直接用+拼接;如果是数值类型,需要先转成字符串:
SELECT
  CASE
    WHEN LEN(CAST([Year] AS VARCHAR(4))) = 4 THEN CAST([Year] AS VARCHAR(4)) + '-' + CAST([Year] AS VARCHAR(4))
    ELSE CAST([Year] AS VARCHAR(MAX))
  END AS new_y
FROM xxxx;
  • PostgreSQL:用||作为拼接运算符:
SELECT
  CASE
    WHEN CHAR_LENGTH("Year") = 4 THEN "Year" || '-' || "Year"
    ELSE "Year"
  END AS new_y
FROM xxxx;

内容的提问来源于stack exchange,提问作者n.ceren

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 16:50:53