CONVERT_TIMEZONE

功能描述

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

语法

CONVERT_TIMEZONE(source_tz, target_tz, ts) CONVERT_TIMEZONE(target_tz, ts)

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

返回值

转换后的时间戳(timestamp)。

使用示例

-- 示例1:将时间戳从莫斯科时区转换到洛杉矶时区 SELECT CONVERT_TIMEZONE('Europe/Moscow', 'America/Los_Angeles', TIMESTAMP '2022-01-01 00:00:00'); -- 返回结果:2021-12-31T05:00:00.000Z -- 示例2:将布鲁塞尔时区的时间戳转换到上海时区 SELECT CONVERT_TIMEZONE('Europe/Brussels', 'Asia/Shanghai', TIMESTAMP '2022-03-23 00:00:00'); -- 返回结果:2022-03-22T23:00:00.000Z -- 示例3:只提供目标时区,将整数时间戳(Unix 秒)转换到东京时区 SELECT CONVERT_TIMEZONE('Asia/Tokyo', TIMESTAMP_SECONDS(1674681600)); -- 返回结果:2023-01-25T22:20:00.000Z -- 示例4:将整数时间戳从上海时区转换到 UTC SELECT CONVERT_TIMEZONE('UTC', 'Asia/Shanghai', TIMESTAMP_SECONDS(1674681600)); -- 返回结果:2023-01-26T05:20:00.000Z

注意事项

  • 时间戳参数必须是
    timestamp
    timestamp
    类型,字符串字面量需要用
    TIMESTAMP '...'
    TIMESTAMP '...'
    显式转换,或使用
    TIMESTAMP_SECONDS()
    TIMESTAMP_SECONDS()
    等函数转换整数。
  • 返回值格式为 ISO 8601(如
    2022-03-22T23:00:00.000Z
    2022-03-22T23:00:00.000Z
    ),表示 UTC 时间。
  • 请确保输入的时区名称有效,否则函数将返回错误。
  • 如果输入的时间戳已经是目标时区的时间,函数将直接返回该时间戳。
联系我们
预约咨询
微信咨询
电话咨询
邮件咨询