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

升级Ubuntu(Beta版)后MSSQL查询返回日期格式异常求助

解决Ubuntu Beta版下MySQL日期查询格式异常问题

刚遇到过类似的系统升级后MySQL日期格式乱掉的情况,大概率是系统或MySQL的配置因为Beta版更新发生了变动,给你几个排查和解决的方向:

1. 检查并修正MySQL的日期格式配置

首先登录MySQL,先确认当前的日期格式设置:

SHOW VARIABLES LIKE 'date_format';
SHOW VARIABLES LIKE 'datetime_format';

如果返回的格式不是%Y-%m-%d(日期)或%Y-%m-%d %H:%i:%s(日期时间),那就是配置出了问题。

  • 临时修复(重启MySQL后失效):
    SET GLOBAL date_format = '%Y-%m-%d';
    SET GLOBAL datetime_format = '%Y-%m-%d %H:%i:%s';
    
  • 永久修复:
    编辑MySQL的配置文件(通常是/etc/mysql/mysql.conf.d/mysqld.cnf,不同版本可能路径略有不同),在[mysqld]区块下添加或修改:
    date_format = %Y-%m-%d
    datetime_format = %Y-%m-%d %H:%i:%s
    
    保存后重启MySQL服务:
    sudo systemctl restart mysql
    

2. 检查系统Locale设置

Ubuntu Beta版可能默认调整了系统的区域设置,尤其是时间相关的LC_TIME,这会影响MySQL的日期显示:
执行以下命令查看当前Locale配置:

locale

重点看LC_TIME的值,如果和你旧系统的不一致(比如旧系统是en_US.UTF-8,新系统变成了其他地区的格式),可以调整:

  • 临时生效(重启后失效):

    export LC_TIME=en_US.UTF-8
    

    然后重启MySQL服务试试。

  • 永久生效:

    sudo update-locale LC_TIME=en_US.UTF-8
    

    执行后重启系统即可。

3. 查询时强制指定日期格式

如果不想改动系统或MySQL配置,也可以直接在SQL查询里用DATE_FORMAT函数强制转换格式,这样不管环境如何都能得到标准格式:

SELECT *, DATE_FORMAT(created, '%Y-%m-%d') AS created FROM mytable ORDER BY created DESC;

注意这里把格式化后的字段重命名为created,可以保持和原来的查询字段名一致,不影响业务代码。

另外提醒下:Beta版系统本身可能存在一些兼容性bug,也可以检查下系统更新,看看有没有修复MySQL相关的补丁,或者暂时切换回稳定版系统作为开发环境,避免影响开发进度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:23:10