Teradata - 转换时区时指定的时区无效

时间:2014-04-11 12:35:27

标签: teradata

我正尝试使用以下方式在日期列和本地时区的当前日期之间进行连接:

SELECT a.* FROM 
a
join b on (a.country_id  = b.country_id)
and date_column =  (Current_date at b.capital_timezone)

b.capital_timezone的值包括欧洲中部,欧洲东部,GMT + 4,GMT + 5:30等,

我收到错误消息 - '指定的时区无效'

1 个答案:

答案 0 :(得分:1)

使用以下语法。还要避免在时区列中使用空值。

Current_date at TIME ZONE coalesce(b.CAPITAL_TIMEZONE,'GMT')

根据Teradata docs,GMT + 5:30似乎是无效的时区值。将其转换为有效值。

来自文档:

不遵循单独的DST和标准时区位移的字符串

  • ' GMT'
  • ' GMT + 1'
  • ' GMT + 10'
  • ' GMT + 11'
  • ' GMT + 11:30'
  • ' GMT + 12'
  • ' GMT + 13'
  • ' GMT + 14'
  • ' GMT + 2'
  • ' GMT + 3'
  • ' GMT + 3:30'
  • ' GMT + 4'
  • ' GMT + 4:30'
  • ' GMT + 5'
  • ' GMT + 5:30'
  • ' GMT + 5:45'
  • ' GMT + 6'
  • ' GMT + 6:30'
  • ' GMT + 7'
  • ' GMT + 8'
  • ' GMT + 8:45'
  • ' GMT + 9'
  • ' GMT + 9:30'
  • ' GMT-1'
  • ' GMT-10'
  • ' GMT-11'
  • ' GMT-2'
  • ' GMT-3'
  • ' GMT-4'
  • ' GMT-5'
  • ' GMT-6'
  • ' GMT-6:30'
  • ' GMT-7'
  • ' GMT-8'

遵循不同DST和标准时区位移的字符串

  • '非洲埃及'
  • '非洲摩洛哥'
  • '非洲纳米比亚'
  • ' America Alaska'
  • ' America Aleutian'
  • ' America Argentina'
  • ' America Atlantic'
  • ' America Brazil'
  • ' America Central'
  • '美国智利'
  • '美国古巴'
  • ' America Eastern'
  • ' America Mountain'
  • '美国纽芬兰'
  • ' America Pacific'
  • '美国巴拉圭'
  • '美国乌拉圭'
  • '亚洲加沙'
  • ' Asia Iran'
  • ' Asia Iraq'
  • '亚洲伊尔库茨克'
  • ' Asia Israel'
  • ' Asia Jordan'
  • ' Asia Kamchatka'
  • '亚洲克拉斯诺亚尔斯克'
  • ' Asia Lebanon'
  • ' Asia Magadan'
  • ' Asia Omsk'
  • ' Asia Syria'
  • '亚洲符拉迪沃斯托克'
  • '亚洲西岸'
  • '亚洲雅库茨克'
  • '亚洲叶卡捷琳堡'
  • '澳大利亚中部'
  • '澳大利亚东部'
  • '澳大利亚西部'
  • ' Europe Central'
  • ' Europe Eastern'
  • ' Europe Kaliningrad'
  • '欧洲莫斯科'
  • '欧洲萨马拉'
  • '欧洲西部'
  • '印度毛里求斯'
  • '墨西哥中部'
  • '墨西哥西北'
  • '墨西哥太平洋'
  • '太平洋新西兰'
  • ' Pacific Samoa'