首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在BigQuery中是否有方法可以得到规则的时区缩写,如EDT或EST,而不是UTC+-X?

在BigQuery中是否有方法可以得到规则的时区缩写,如EDT或EST,而不是UTC+-X?
EN

Stack Overflow用户
提问于 2022-10-28 07:10:45
回答 1查看 34关注 0票数 1

我想把我的时间戳显示为2022-10-28 00:00:26

但是,使用我当前的代码

代码语言:javascript
复制
FORMAT_TIMESTAMP('%Y-%m-%d %H:%M:%S %Z', CURRENT_TIMESTAMP(), 'America/Los_Angeles') AS timezoned

我收到2022-10-28 00:00:26 UTC-7作为输出

有没有办法使UTC-7看起来像BigQuery中的默认时区缩写(如EDT或EST )?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-28 09:48:35

由于有更多的25个时区 (例如,UTC+9映射到JST、KST、TNK、.),所以映射时区不是many-to-one mapping。因此,我认为我们需要一个预定义的字典(或映射)来将数字映射到一个预定义的字符串。

一种可能的方法是使用数组查找索引的字符串。

BigQuery脚本

代码语言:javascript
复制
DECLARE TZ_DICT ARRAY<STRING>;
SET TZ_DICT = ARRAY<STRING>[
    'NUT', 'HST', 'HDT', 'AKDT','PDT', 'CST', 'CDT', 'EDT', 'ART', 'WGST',
    'CVT', 'GMT', 'BST', 'CEST', 'MSK', 'GST', 'UZT', 'BST', 'WIB', 'CST',
    'JST', 'AEST', 'AEDT', 'ANAT'
];

WITH
time_zone_data AS (
    SELECT FORMAT_TIMESTAMP('%Z', CURRENT_TIMESTAMP(), 'Asia/Seoul') AS time_zone_str,
    UNION ALL SELECT FORMAT_TIMESTAMP('%Z', CURRENT_TIMESTAMP(), 'America/Los_Angeles') AS time_zone_str,
    UNION ALL SELECT FORMAT_TIMESTAMP('%Z', CURRENT_TIMESTAMP(), 'Pacific/Guam') AS time_zone_str,
    UNION ALL SELECT FORMAT_TIMESTAMP('%Z', CURRENT_TIMESTAMP(), 'America/Puerto_Rico') AS time_zone_str,
    UNION ALL SELECT FORMAT_TIMESTAMP('%Z', CURRENT_TIMESTAMP(), 'Africa/Bamako') AS time_zone_str,
    UNION ALL SELECT FORMAT_TIMESTAMP('%Z', CURRENT_TIMESTAMP(), 'Pacific/Niue') AS time_zone_str,
    UNION ALL SELECT FORMAT_TIMESTAMP('%Z', CURRENT_TIMESTAMP(), 'Pacific/Norfolk') AS time_zone_str,
),
time_zone_data_processed AS (
    SELECT
        time_zone_str,
        CAST(SUBSTRING(IF(time_zone_str = "UTC", "UTC+0", time_zone_str), 4) AS INT64) + 11 as time_zone_index,
    FROM time_zone_data
)
SELECT
    time_zone_str,
    time_zone_index,
    TZ_DICT[OFFSET(time_zone_index)] as time_zone_string,
FROM time_zone_data_processed
;

结果

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74231777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档