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

SQL如何将带英文月份名的字符串日期转换为标准日期格式

SQL实现字符串日期格式转换方案

以下是主流数据库的实现方式,替换语句中的你的字段名、你的表名即可直接使用:

MySQL 实现

先通过STR_TO_DATE将字符串转成日期类型,再用DATE_FORMAT输出目标格式:

SELECT DATE_FORMAT(STR_TO_DATE(你的字段名, '%d-%b-%y'), '%d-%m-%Y') AS 格式化后日期 FROM 你的表名;

参数说明:%d匹配两位数日期,%b匹配英文缩写月份,%y匹配两位数年份,%Y输出四位数年份,%m输出两位数月份。如果业务存在19xx的两位数年份场景,需注意数据库默认的年份阈值:小于70的两位数年份默认识别为20xx,大于等于70的识别为19xx,不符合需求可自行调整阈值配置。

Oracle 实现

用TO_DATE转日期后再通过TO_CHAR格式化输出:

SELECT TO_CHAR(TO_DATE(你的字段名, 'DD-MON-RR'), 'DD-MM-YYYY') AS 格式化后日期 FROM 你的表名;

如果数据库是中文环境,英文月份识别会报错,可指定英文日期语言参数:

SELECT TO_CHAR(TO_DATE(你的字段名, 'DD-MON-RR', 'NLS_DATE_LANGUAGE = AMERICAN'), 'DD-MM-YYYY') AS 格式化后日期 FROM 你的表名;

SQL Server 实现

SQL Server 2012及以上版本可使用CONVERT+FORMAT组合实现:

SELECT FORMAT(CONVERT(DATE, 你的字段名, 6), 'dd-MM-yyyy') AS 格式化后日期 FROM 你的表名;

参数说明:转换格式值6对应dd mon yy的输入格式,可自动识别英文缩写月份。

PostgreSQL 实现

SELECT TO_CHAR(TO_DATE(你的字段名, 'DD-Mon-YY'), 'DD-MM-YYYY') AS 格式化后日期 FROM 你的表名;

中文环境下可指定英文解析规则:

SELECT TO_CHAR(TO_DATE(你的字段名, 'DD-Mon-YY', 'english'), 'DD-MM-YYYY') AS 格式化后日期 FROM 你的表名;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 01:39:02