Hive 秘密祖鲁时间到PST
我正在尝试将yulu格式的开始时间转换为pst。 开始时间示例:2020-02-04T04:36:42:211ZHive 秘密祖鲁时间到PST,hive,hql,hiveql,Hive,Hql,Hiveql,我正在尝试将yulu格式的开始时间转换为pst。 开始时间示例:2020-02-04T04:36:42:211Z from_unixtime(unix_timestamp(sub string(start_time,1,17),'yyyy-MM-ddThh:mm:ss.SSSZ),'yyyy-MM-dd hh:mm:ss) 但我得到的输出为NULL 请帮助。字符串中的EscapeT,Z。注意模式使用双引号,T和Z用单引号转义 select from_unixtime(unix_timestam
from_unixtime(unix_timestamp(sub string(start_time,1,17),'yyyy-MM-ddThh:mm:ss.SSSZ),'yyyy-MM-dd hh:mm:ss)
但我得到的输出为NULL
请帮助。字符串中的Escape
T
,Z
。注意模式使用双引号,T
和Z
用单引号转义
select from_unixtime(unix_timestamp('2020-02-04T04:36:42:211Z',"yyyy-MM-dd'T'HH:mm:ss:SSS'Z'")
,'yyyy-MM-dd HH:mm:ss')
此外,在匹配完整字符串的模式时,不需要
子字符串。在字符串中转义t
,Z
。注意模式使用双引号,T
和Z
用单引号转义
select from_unixtime(unix_timestamp('2020-02-04T04:36:42:211Z',"yyyy-MM-dd'T'HH:mm:ss:SSS'Z'")
,'yyyy-MM-dd HH:mm:ss')
此外,在匹配完整字符串的模式时,不需要子字符串。最好使用FROM\u UTC\u时间戳,因为UNIX\u时间戳返回秒,时间戳的毫秒部分将丢失
FROM_UTC_TIMESTAMP(UNIX_TIMESTAMP(2020-02-04T04:36:42:211Z, "yyyy-MM-dd'T'hh:mm:ss.SSS'Z'"), 'PST')
有时,由于“T”和“Z”,我们的结果可能会失真。在这种情况下,我们可以使用:
from_utc_timestamp(CONCAT(substring('2020-02-04T04:36:42:211Z',1,10)," ",substring('2020-02-04T04:36:42:211Z',12,12)),'PST')
最好使用FROM_UTC_TIMESTAMP,因为UNIX_TIMESTAMP返回秒,您将丢失时间戳的毫秒部分
FROM_UTC_TIMESTAMP(UNIX_TIMESTAMP(2020-02-04T04:36:42:211Z, "yyyy-MM-dd'T'hh:mm:ss.SSS'Z'"), 'PST')
有时,由于“T”和“Z”,我们的结果可能会失真。在这种情况下,我们可以使用:
from_utc_timestamp(CONCAT(substring('2020-02-04T04:36:42:211Z',1,10)," ",substring('2020-02-04T04:36:42:211Z',12,12)),'PST')
你能调查一下吗