Spark sql 返回错误输出的 Unix 时间戳

Spark sql Unix timestamp returning wrong output

下面的查询返回 2017-02-23 00:45:00 而不是 12:45

spark.sql("select from_unixtime(unix_timestamp(('2017-02-23 12:45:00')," +
          "'yyyy-MM-dd hh:mm:ss'))").show(false)

但是下面的查询返回了预期的输出

2017-02-23 13:45:00

spark.sql("select from_unixtime(unix_timestamp(('2017-02-23 13:45:00')," +
          "'yyyy-MM-dd hh:mm:ss'))").show(false)

有人可以帮忙吗?

你应该使用大写字母 h 作为 HH:mm:ss

spark.sql("select from_unixtime(unix_timestamp(('2017-02-23 12:45:00'),'yyyy-MM-dd HH:mm:ss')) AS date").show(false)

哪个应该给你

+-------------------+
|date               |
+-------------------+
|2017-02-23 12:45:00|
+-------------------+

您可以获得更多信息here