MySQL CONVERT_TZ() 用法与实例

在 MySQL 中,您可以使用 CONVERT_TZ() 函数将一个时区之间的日期时间值转换为另一个时区。

发布于

在 MySQL 中,您可以使用 CONVERT_TZ() 函数将一个时区之间的日期时间值转换为另一个时区。

CONVERT_TZ() 函数接受 3 个参数:日期时间值、原始时区和要转换为的时区。

本文将说明 MySQL CONVERT_TZ() 函数的用法并给出了几个实例。

语法

语法如下:

CONVERT_TZ(dt,from_tz,to_tz)

其中 dt 是日期/时间, from_tz 是原始时区, to_tz 是要转换为的时区。

示例 1 - 基本用法

这个示例展示了 MySQL CONVERT_TZ() 函数的基本用法:

SELECT CONVERT_TZ('2020-12-01 01:00:00','+00:00','+08:00') AS Result;

输出:

+---------------------+
| Result              |
+---------------------+
| 2020-12-01 09:00:00 |
+---------------------+

示例 2 - 命名时区

您还可以使用命名时区,例如 US/EasternEurope/MoscowMET 等。

为此,您需要先设置时区表。MySQL 安装过程创建了时区表,但没有加载数据。因此,您需要先填充这些表。

如果尝试将命名时区与此函数一起使用,而不先填充时区表,则会获得 null 值。

SELECT CONVERT_TZ('2020-12-01 01:00:00','Europe/Helsinki','US/Eastern') AS Result;

输出:

+--------+
| Result |
+--------+
| NULL   |
+--------+

请注意,即使您确实填充了时区表,也可能需要定期更新它们。这是因为信息偶尔会更改。有关此内容的更多信息,请参阅 MySQL 文档网站上的 MySQL 服务器时区支持