You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snowflake数据类型何时改用本地时区而非UTC?JDBC驱动版本变更咨询

Snowflake JDBC驱动时区显示变更问题解答

变更起始版本

该时区处理逻辑的变更从snowflake-jdbc 3.12.18版本开始,并非你提到的3.13.20。

变更原因

驱动团队调整了时间类型的客户端解析逻辑:

  • 3.12.17及更早版本默认以UTC时区返回TIME、TIMESTAMP_NTZ、TIMESTAMP_TZ类型数据
  • 3.12.18及之后版本默认使用JVM的本地时区转换并返回这些时间类型的值,这就是你看到时区偏移和时间数值变化的原因
  • TIMESTAMP_TZ的异常差异是因为该类型本身带时区信息,新版本驱动会将存储的UTC时间转换为本地时区时间返回,而旧版本直接返回带UTC偏移的原始值

查看相关说明的方式

你可以在Snowflake官方JDBC驱动的发行说明中找到对应内容,重点查看3.12.18版本的更新条目,里面明确标注了时间类型时区处理的变更。另外,Snowflake的JDBC驱动文档中也有关于时区配置的详细说明,包括如何通过连接参数指定时区。

恢复旧行为的方法

如果需要回到之前UTC返回的逻辑,可在JDBC连接URL中添加参数:

jdbc:snowflake://<account>.snowflakecomputing.com/?TIMEZONE=UTC

也可以通过设置连接属性timezone=UTC,强制驱动使用UTC时区处理时间类型。

你的示例数据对比:

TIME            TIMESTAMP_NTZ             TIMESTAMP_TZ
3.12.17 22:46:42.000 +0000 2021-01-16 13:46:42.000 2021-01-16 22:46:42.123 +0000
3.12.20 22:46:42.000 +0100 2021-01-16 14:46:42.000 2021-01-16 15:46:42.000 +0100

内容的提问来源于stack exchange,提问作者Jan Jelínek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 04:42:13