Teradata查询current_timestamp返回GMT而非CDT时区如何修复
Teradata时区标识显示异常解决方案
时间数值正确、仅时区偏移标识错误的问题,是Teradata会话/系统的时区配置未正确绑定CDT对应时区规则导致的,可通过以下方案解决:
方案1:临时修改当前会话时区(单次会话生效)
执行以下SQL调整当前会话的时区为CDT对应的北美中部时区,修改仅对当前登录会话有效:
SET TIME ZONE 'America/Chicago';
配置完成后重新查询当前时间即可看到正确的时区偏移:
SELECT current_timestamp(0); -- 输出示例:2021-08-30 17:29:30-05:00
方案2:永久修改指定用户默认时区(该用户所有会话生效)
如果需要每次登录都自动使用CDT时区,可联系DBA执行以下SQL修改对应用户的默认时区配置:
MODIFY USER 你的用户名 AS TIME ZONE = 'America/Chicago';
修改完成后用户重新登录即可生效,无需每次会话单独调整。
方案3:全局修改系统默认时区(全库所有会话生效,需DBA权限)
如果全库业务均使用CDT时区,可调整系统级时区配置:修改DBS Control记录中的TimeZoneDefault参数为America/Chicago,重启数据库后全库默认时区生效。
配置验证
修改配置后可执行以下SQL确认当前会话时区是否配置正确:
SELECT CURRENT_TIMEZONE;
正常输出应为America/Chicago,此时查询时间戳的时区偏移会自动适配夏令时/冬令时规则,夏令时时段显示-05:00、冬令时时段显示-06:00,无需手动硬编码偏移量。
内容的提问来源于stack exchange,提问作者saranya elumalai
相关产品推荐
相关产品推荐

