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

MySQL中如何将MMYYYY格式字符串转换为now()返回的datetime格式

MySQL字符串转指定日期格式解决方案

你的输入为MMYYYY格式的字符串(两位月份+四位年份),需要转换为YYYY-MM-DD HH:MM:SS格式的 datetime 类型值,对应 MySQL 中now()的返回格式,可直接用内置日期函数实现。


方案1(推荐:自带合法性校验)

使用STR_TO_DATE函数指定格式解析字符串,再强转为 datetime 类型补齐时分秒:

-- 单值测试
SELECT CAST(STR_TO_DATE('012018', '%m%Y') AS DATETIME) AS target_date;

返回结果:2018-01-01 00:00:00

批量处理表字段示例

SELECT CAST(STR_TO_DATE(你的存储日期的字段名, '%m%Y') AS DATETIME) AS target_date 
FROM 你的表名;

说明:STR_TO_DATE按照%m%Y(两位月份+四位年份)规则解析字符串时,会默认补齐当月第一天作为日值;转为 datetime 类型后自动补全00:00:00作为时分秒,和now()返回的格式完全一致。同时该函数会自动校验日期合法性,遇到无效月份(比如132018代表13月)会返回NULL,方便排查脏数据。


方案2(字符串拼接,无校验)

如果不需要做日期合法性校验,也可以直接拆分字符串拼接得到结果:

SELECT CONCAT(RIGHT('012018',4), '-', LEFT('012018',2), '-01 00:00:00') AS target_date;

该方法性能略高,但遇到非法日期不会提示错误,会直接生成不符合规则的日期值,不推荐生产环境使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 22:24:07