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

如何在SQL中将日期列格式从MM DD YYYY改为DD MM YYYY?

在SQL中将日期列从MM DD YYYY转换为DD MM YYYY的方法

首先明确:SQL中的DATE/DATETIME等日期类型本身没有存储格式,格式仅在查询输出或展示时生效。以下分场景和不同数据库给出具体方案:

场景1:查询时格式化输出(不修改存储)

如果只是需要在查询结果中以DD MM YYYY格式展示日期,直接使用对应数据库的格式化函数:

MySQL/MariaDB

使用DATE_FORMAT函数:

SELECT DATE_FORMAT(your_date_column, '%d %m %Y') AS formatted_date
FROM your_table;

如果原列是字符串类型(如VARCHAR存储的'MM DD YYYY'),先转成日期再格式化:

SELECT DATE_FORMAT(STR_TO_DATE(your_string_column, '%m %d %Y'), '%d %m %Y') AS formatted_date
FROM your_table;

SQL Server(2012及以上)

使用FORMAT函数:

SELECT FORMAT(your_date_column, 'dd MM yyyy') AS formatted_date
FROM your_table;

字符串转日期再格式化(针对空格分隔的MM DD YYYY字符串):

SELECT FORMAT(CONVERT(DATE, REPLACE(your_string_column, ' ', '/'), 101), 'dd MM yyyy') AS formatted_date
FROM your_table;

Oracle

使用TO_CHAR函数:

SELECT TO_CHAR(your_date_column, 'DD MM YYYY') AS formatted_date
FROM your_table;

字符串转日期再格式化:

SELECT TO_CHAR(TO_DATE(your_string_column, 'MM DD YYYY'), 'DD MM YYYY') AS formatted_date
FROM your_table;

PostgreSQL

使用TO_CHAR函数:

SELECT TO_CHAR(your_date_column, 'DD MM YYYY') AS formatted_date
FROM your_table;

字符串转日期再格式化:

SELECT TO_CHAR(TO_DATE(your_string_column, 'MM DD YYYY'), 'DD MM YYYY') AS formatted_date
FROM your_table;

场景2:修改表结构(推荐将字符串日期转为原生日期类型)

如果原列是用字符串(如VARCHAR)存储的日期,建议将其修改为数据库原生的DATE类型,后续通过格式化函数控制展示格式:

MySQL/MariaDB

ALTER TABLE your_table MODIFY COLUMN your_date_column DATE;

SQL Server

ALTER TABLE your_table ALTER COLUMN your_date_column DATE;

Oracle

ALTER TABLE your_table MODIFY your_date_column DATE;

PostgreSQL

ALTER TABLE your_table ALTER COLUMN your_date_column TYPE DATE USING your_date_column::DATE;

注意事项

  • 优先使用原生日期类型存储日期,避免用字符串,这样能避免格式错误,还能方便进行日期运算(如加减天数、排序等)。
  • 若仅需展示特定格式,优先在查询或应用层处理,无需修改存储结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 20:45:17