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

将数据库表中YYMM格式日期字段更新为YYYYMM格式

统一日期格式为YYYYMM的快速实现方案

核心思路

先识别出长度为4位的YYMM格式记录,再在其头部拼接20转换为YYYYMM格式。具体实现需根据字段类型(字符串/数值)和使用的数据库调整。

分场景实现代码

1. 字段为字符串类型(如VARCHAR)

MySQL
-- 先验证待更新记录,确认转换结果
SELECT date_column, CONCAT('20', date_column) AS formatted_date
FROM your_table
WHERE CHAR_LENGTH(date_column) = 4;

-- 确认无误后执行更新
UPDATE your_table
SET date_column = CONCAT('20', date_column)
WHERE CHAR_LENGTH(date_column) = 4;
SQL Server
-- 验证待更新记录
SELECT date_column, '20' + date_column AS formatted_date
FROM your_table
WHERE LEN(date_column) = 4;

-- 执行更新
UPDATE your_table
SET date_column = '20' + date_column
WHERE LEN(date_column) = 4;
Oracle
-- 验证待更新记录
SELECT date_column, '20' || date_column AS formatted_date
FROM your_table
WHERE LENGTH(date_column) = 4;

-- 执行更新
UPDATE your_table
SET date_column = '20' || date_column
WHERE LENGTH(date_column) = 4;

2. 字段为数值类型(如INT)

如果日期存储为数值,YYYYMM是6位数值(≥100000),YYMM是4位数值(≤9999),可直接通过数值运算处理:

-- 以MySQL为例,其他数据库逻辑一致
-- 验证待更新记录
SELECT date_column, 200000 + date_column AS formatted_date
FROM your_table
WHERE date_column < 10000;

-- 执行更新
UPDATE your_table
SET date_column = 200000 + date_column
WHERE date_column < 10000;

注意事项

  • 操作前务必备份数据表,或先执行查询语句验证待更新记录的正确性,避免误操作。
  • 若存在00MM这类特殊年份(如2000年),上述逻辑同样适用,会自动转换为2000MM。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 08:22:04