在BigQuery中如何将CST时区的Datetime转换为PST时区?
将CST时区Datetime转换为PST的SQL查询方法
首先需要明确你所说的CST时区具体指向,因为CST存在多个歧义时区:
- 中国标准时间(UTC+8):对应时区标识
Asia/Shanghai - 美国中部标准时间(UTC-6):对应时区标识
America/Chicago - 澳大利亚中部标准时间(UTC+9:30):对应时区标识
Australia/Darwin
根据你的需求,分两种场景给出查询语句:
场景1:原始数据是不带时区偏移的CST时间字符串
使用DATETIME函数的三参数形式,依次传入源时间字符串、源时区标识、目标时区标识(PST对应America/Los_Angeles),函数会自动完成从CST到UTC再到PST的转换:
示例(中国CST转PST)
SELECT DATETIME("2008-12-25 15:30:00", "Asia/Shanghai", "America/Los_Angeles") AS pst_date;
示例(美国中部CST转PST)
SELECT DATETIME("2008-12-25 15:30:00", "America/Chicago", "America/Los_Angeles") AS pst_date;
场景2:原始数据是带CST时区偏移的时间字符串
如果你的时间字符串已经包含CST的偏移信息(比如中国CST对应+08,美国中部CST对应-06),可以直接用双参数形式,函数会先解析为UTC时间再转换到PST:
示例(带中国CST偏移的时间转PST)
SELECT DATETIME("2008-12-25 15:30:00+08", "America/Los_Angeles") AS pst_date;
关键注意点
一定要明确源CST的具体时区,避免因歧义导致转换结果错误。
内容的提问来源于stack exchange,提问作者ramen_noodles
相关产品推荐
相关产品推荐

