转换时区函数 CONVERT_TIMEZONE

功能描述

CONVERT_TIMEZONE 函数用于将一个指定的时间戳从一个时区转换到另一个时区。该函数能够处理不同类型的时间格式输入,并在必要时自动进行类型转换。

语法

CONVERT_TIMEZONE(source_tz, target_tz, ts)
CONVERT_TIMEZONE(target_tz, ts)
  • source_tz string : 原始时区。如果只提供两个参数,则默认使用当前会话的时区作为原始时区。
  • target_tz string : 目标时区。
  • ts int 或 timestamp : 时间戳。如果是整数类型,函数会自动将其转换为时间戳类型。

返回值

转换后的时间戳(timestamp)。

使用示例

-- 示例1:将时间戳从莫斯科时区转换到洛杉矶时区
SELECT CONVERT_TIMEZONE('Europe/Moscow', 'America/Los_Angeles', '2022-01-01 00:00:00');

-- 返回结果:2021-12-31 13:00:00

-- 示例2:将当前布鲁塞尔时区的时间戳转换到目标时区
SELECT CONVERT_TIMEZONE('Europe/Brussels', 'Asia/Shanghai', '2022-03-23 00:00:00');

-- 返回结果: 2022-03-23 07:00:00

-- 示例3:只提供目标时区,将当前会话时区的时间戳转换到东京时区
SELECT CONVERT_TIMEZONE('Asia/Tokyo', 1674681600);

-- 返回结果: 2023-01-26 06:20:00

-- 示例4:将整数类型的时间戳从北京时间转换到UTC时间
SELECT CONVERT_TIMEZONE('UTC','Asia/Shanghai', 1674681600);

-- 返回结果:2023-01-26 13:20:00

注意事项

  • 请确保输入的时区名称有效,否则函数将返回错误。
  • 当输入的时间戳格式不正确或无法识别时,函数将自动尝试进行类型转换。
  • 如果输入的时间戳已经是目标时区的时间,函数将直接返回该时间戳。

通过使用 CONVERT_TIMEZONE 函数,您可以轻松地在不同时区之间转换时间戳,从而确保数据的准确性和一致性。

联系我们
预约咨询
微信咨询
电话咨询