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

MySQL 8.0.30修改日期格式为DD/MM/YYYY报错,求解决方案及dmy用法

MySQL日期格式设置及dmy用法说明

为什么SET DATEFORMAT dmy报错?

SET DATEFORMAT是SQL Server专属语法,MySQL并不支持该命令,因此执行时会触发1064语法错误。

MySQL中设置默认日期格式为DD/MM/YYYY的方法

根据生效范围不同,有三种设置方式:

1. 会话级临时生效(仅当前连接有效)

执行以下语句,当前Workbench连接中,日期类型转字符串时会自动使用DD/MM/YYYY格式:

SET session date_format = '%d/%m/%Y';

验证:执行SELECT CURDATE();,会返回类似31/12/2024的结果。

2. 全局级临时生效(对新连接有效,重启MySQL后失效)

需要管理员权限,执行后所有新打开的连接会应用该格式:

SET global date_format = '%d/%m/%Y';

注意:当前已打开的连接不会立即生效,需重新连接Workbench才能看到变化。

3. 永久生效(需修改配置文件)

找到Windows系统中MySQL的配置文件my.ini(可通过Workbench的Server > Options File打开),在[mysqld]节点下添加:

date_format = '%d/%m/%Y'

保存后重启MySQL服务,所有连接都会默认使用该日期格式。

补充:插入/查询时的格式转换

如果需要将字符串按DD/MM/YYYY格式转为日期类型,使用STR_TO_DATE函数:

INSERT INTO your_table (date_column) VALUES (STR_TO_DATE('31/12/2024', '%d/%m/%Y'));

如果需要将日期类型转为DD/MM/YYYY格式的字符串,使用DATE_FORMAT函数:

SELECT DATE_FORMAT(date_column, '%d/%m/%Y') FROM your_table;

dmy的正确用法

dmy是SQL Server中用于指定日-月-年顺序的格式参数,但MySQL中没有直接对应的关键字。不过可以通过以下方式实现类似效果:

  • 在日期格式化时,使用%d/%m/%Y格式符(对应日/月/年),这就是dmy顺序在MySQL中的实现方式。
  • 如果需要影响日期相关函数的语言显示(比如月份名称),可以设置lc_time_names,但这不会改变日期格式的顺序:
    SET lc_time_names = 'en_GB'; -- 英式英语会采用日-月-年的显示习惯,但不修改date_format默认值
    

内容的提问来源于stack exchange,提问作者Dương Đại Sơn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 12:40:33