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

如何填充MariaDB时区表?解决CONVERT_TZ函数返回NULL问题

解决MariaDB CONVERT_TZ返回NULL的时区表填充方法

当CONVERT_TZ()返回NULL时,核心原因是MariaDB的mysql库中时区表未填充数据。以下是不同系统下的具体操作步骤:

Linux系统操作

使用MariaDB内置的mysql_tzinfo_to_sql工具,直接从系统时区文件导入数据:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

执行命令后输入root用户密码,工具会自动将系统时区数据导入到MariaDB的时区表中。

Windows系统操作

Windows默认没有系统级时区数据库文件,需手动导入预先生成的时区SQL脚本:

  1. 获取与你的MariaDB版本兼容的时区SQL脚本
  2. 登录MariaDB客户端,执行以下命令导入脚本:
USE mysql;
SOURCE D:/path/to/timezone_data.sql; -- 替换为实际文件路径

验证结果

导入完成后,重新运行你的测试语句:

SELECT CONVERT_TZ('2016-01-01 12:00:00','GMT','Africa/Johannesburg');

正常情况下会返回2016-01-01 14:00:00,说明时区表已成功填充。

注意事项

  • 操作需要拥有MariaDB的root权限(或具备mysql库的写入权限)
  • 导入后无需重启服务,变更立即生效
  • 若导入时出现权限报错,检查当前账号的权限设置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 20:55:19