datetime - Hive 时间戳 ISO 到 UTC 的转换

标签 datetime hadoop hive

我有带有 ISO 8601 时间戳的字符串,例如 2016-03-07T10:02:37.820+01:00,我想将它们转换为 UTC 时间。内置的 to_utc_timestamp (AFAIK) 只采用时区名称(例如 PST、CET)而不是偏移量。至少我尝试过但失败了。在 Hive 中是否有一种优雅的方式来实现这一点?

最佳答案

一种方法是,您可以编写 Hive UDF 进行时间格式转换。

另一种方法是,使用 unix_timestamp 将 ISO 时间戳转换为秒,然后使用 to_utc_timestamp

 TO_UTC_TIMESTAMP(UNIX_TIMESTAMP(T.date, "yyyy-MM-dd'T'hh:mm:ss.SSS'Z'") * 1000, '<timezone>')

关于datetime - Hive 时间戳 ISO 到 UTC 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35935981/

相关文章:

sql - SQL Server 中的 DateTime2 与 DateTime

Python MySQLdb 不正确的日期时间值 : '2018-03-25 02:00:02'

sql - 基于unix时间戳聚合数据创建数据库

hadoop - 设置hadoop mapreduce作业以从Cassandra数据库检索数据

apache-spark - Spark : load or select Hive table of ORC format

hadoop - 如何按点和相应的多边形连接 2 个配置单元表?

javascript - 如何在 Javascript 中排序日期时间字符串?

hadoop - pig 中的 "unable to open iterator for an alias"是什么意思?

hadoop - 文档中的Elastic Search更新字段

apache-spark - 使用 Spark SQL 查询 Hive 分区中子目录中的数据