2016-11-15 135 views
2

我有一个unix时间戳,它在插入到sql server数据库之前使用HIVE中的视图进行转换。我遇到的问题是我需要正确的格式将其插入到sql server中的datetimeoffset(2)字段中。下面是从蜂巢的例子:带时区的HIVE日期时间格式

查询: 选择FROM_UNIXTIME(1413587962, 'YYYY.MM.DD HH:MM:SS Z');

结果:2014年10月17日11点19分22秒UTC

SQL服务器不能为该格式隐式转换。如果我跑这是SQL服务器:

查询:SELECT CONVERT(DATETIMEOFFSET(2), '2014年10月17日11时19分22秒UTC')

结果:消息241,级别16,状态1 ,第1行 从字符串转换日期和/或时间时转换失败。

如果我将UTC更改为+00:00,SQL服务器转换为DATETIMEOFFSET(2)就好了。

我需要在HIVE中使用什么格式来显示偏移中的小时和分钟而不是文本时区?我累了[+ | - ] hh:mm,hh:mm和z。

回答

1

可能是这是否有助于以来,在市委ž 选择FROM_UNIXTIME(1413587962, 'YYYY.MM.DD HH:MM:SS Z') 二○一四年十月一十七日十一时19分22秒+0000

If that does not work direct +00:00 works? 
select from_unixtime(1413587962, 'yyyy.MM.dd hh:mm:ss +00:00') 
+0

那让我更接近,SQL服务器仍然无法隐式转换+0000。它需要有+00:00。谢谢。 – carbon

+0

刚刚看到您的编辑。这就是我最终做的。谢谢! – carbon