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

在SQL Server中如何将Varchar类型值'18-MAR-13'转换为日期

解决Varchar日期字符串转换为指定格式日期的问题

针对将Varchar类型的'18-MAR-13'转换为'DD-MM-YYYY'格式的'18-03-2013',可以根据你使用的数据库类型采用以下简洁可靠的方法:

MySQL

先用STR_TO_DATE将字符串解析为日期类型,再用DATE_FORMAT格式化输出:

SELECT DATE_FORMAT(STR_TO_DATE('18-MAR-13', '%d-%b-%y'), '%d-%m-%Y') AS formatted_date;
  • %d对应两位日期,%b对应英文缩写月份(如MAR),%y对应两位年份
  • 先解析为日期再格式化,完全避免拼接字符串的繁琐操作

SQL Server

使用PARSE指定英文文化参数识别缩写月份,再用FORMAT输出目标格式:

SELECT FORMAT(PARSE('18-MAR-13' AS DATE USING 'en-US'), 'dd-MM-yyyy') AS formatted_date;

如果需要兼容转换失败的场景,用TRY_PARSE会返回NULL而非报错:

SELECT FORMAT(TRY_PARSE('18-MAR-13' AS DATE USING 'en-US'), 'dd-MM-yyyy') AS formatted_date;

Oracle

通过TO_DATE解析字符串后,用TO_CHAR格式化输出:

SELECT TO_CHAR(TO_DATE('18-MAR-13', 'DD-MON-RR'), 'DD-MM-YYYY') AS formatted_date FROM DUAL;

如果数据库语言环境非英文,需指定NLS参数确保识别英文月份:

SELECT TO_CHAR(TO_DATE('18-MAR-13', 'DD-MON-RR', 'NLS_DATE_LANGUAGE=ENGLISH'), 'DD-MM-YYYY') AS formatted_date FROM DUAL;

这些方法的核心是先将字符串正确解析为标准日期类型,再转换为目标格式,比手动拼接字符串更简洁且不易出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:12:05