我试图将yulu格式的start_time隐藏到pst.Start_time样本: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。
请帮助我。
最好使用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')
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')
此外,你不需要一个 substring
因为你正在匹配完整字符串的模式。