我试图将字符串格式数据类型转换为 Spark SQL 中的日期格式,下面是我用来隐藏的查询,但奇怪的是它适用于 12 小时格式,而不适用于 24 小时格式(显示为 null)
select from_unixtime(unix_timestamp('19-Aug-2020 10:05:40', 'dd-MMM-yyyy hh:mm:ss'), 'yyyy-MM-dd hh:mm:ss') as timestamp1,from_unixtime(unix_timestamp('19-Aug-2020 14:05:40', 'dd-MMM-yyyy hh:mm:ss'), 'yyyy-MM-dd hh:mm:ss') as timestamp2;
我在这里错过了什么吗?
提前致谢
最佳答案
这是对 HH
和 hh
的测试。
spark.sql('''
select
to_timestamp('19-Aug-2020 10:05:40', 'dd-MMM-yyyy hh:mm:ss') as timestamp11,
to_timestamp('19-Aug-2020 10:05:40', 'dd-MMM-yyyy HH:mm:ss') as timestamp12,
to_timestamp('19-Aug-2020 14:05:40', 'dd-MMM-yyyy hh:mm:ss') as timestamp21,
to_timestamp('19-Aug-2020 14:05:40', 'dd-MMM-yyyy HH:mm:ss') as timestamp22
''').show()
+-------------------+-------------------+-----------+-------------------+
| timestamp11| timestamp12|timestamp21| timestamp22|
+-------------------+-------------------+-----------+-------------------+
|2020-08-19 10:05:40|2020-08-19 10:05:40| null|2020-08-19 14:05:40|
+-------------------+-------------------+-----------+-------------------+
关于sql - 在pyspark问题中转换24小时日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63601536/