我正在用json有效负载查询配置单元中的一个表,并从这些有效负载中提取时间戳。问题是时间戳以不同的时区格式存在,我正试图在我的时区中提取它们。
我目前正在使用以下工具:
选择
from_unixtime(unix_timestamp(get_json_object(table.payload,$.timestamp'),“yyyy-mm-dd't'hh:mm:ss.sss”))
从表
如果时间戳的格式为:2018-08-16t08:54:05.543z-->2018-08-16 18:54:05(已更改格式并转换为我的时区),则返回正确的值
但是,如果有效负载包含以下格式的时间戳:2018-09-13t01:35:08.460+0000 2018-09-13t11:35:09+10:00,则上面的查询返回“null”
如何调整我的查询,使其适用于所有类型的时间戳所有转换到正确的时区(+10是我的时区!)都是同样的格式?
提前谢谢!
2条答案
按热度按时间ncgqoxb01#
如果没有regexp,则使用z表示+1000,使用表示+10:00:
关于时间格式的完整文档:https://docs.oracle.com/javase/7/docs/api/java/text/simpledateformat.html
tv6aics12#
下面的宏如何:
例如。,