請幫助理解為什么早上 8:15date_format不08:15提取?
spark.sql("select date_format(date '1994-11-05T08:15:30-05:00', 'hh:mm') AS hour_in_day_number").show()
------------------
|hour_in_day_number|
------------------
| 12:00|
------------------
spark.sql("select date_format(date '1994-11-05T08:15:30-05:00', 'HH:mm') AS hour_in_day_number").show()
------------------
|hour_in_day_number|
------------------
| 00:00|
------------------
spark.sql("select date_format(date '1994-11-05T08:15:30-05:00', 'kk:mm') AS hour_in_day_number").show()
------------------
|hour_in_day_number|
------------------
| 24:00|
------------------
W3C 日期和時間格式
示例
1994-11-05T08:15:30-05:00 對應于 1994 年 11 月 5 日上午 8:15:30,美國東部標準時間。
用于格式化和決議的日期時間模式
| 象征 | 意義 | 介紹 | 例子 |
|---|---|---|---|
| G | 時代 | 文本 | 廣告; 公元 |
| 是的 | 年 | 年 | 2020;20 |
| D | 一年中的一天 | 號碼(3) | 189 |
| 米/升 | 一年中的一個月 | 月 | 7; 07; 七月; 七月 |
| d | 日期 | 號碼(3) | 28 |
| 問/問 | 季度 | 號碼/文字 | 3;03; Q3; 第三季度 |
| 乙 | 星期幾 | 文本 | 周二;周二 |
| F | 一個月的星期幾對齊 | 1號) | 3 |
| 一種 | 上午-下午 | 上午下午 | 下午 |
| H | 時鐘時間-上午-下午 (1-12) | 2號) | 12 |
| ? | 上午-下午 (0-11) | 2號) | 0 |
| ? | 時鐘小時 (1-24) | 2號) | 0 |
| H | 一天中的小時 (0-23) | 2號) | 0 |
| 米 | 一分鐘 | 2號) | 30 |
| s | 分秒 | 2號) | 55 |
| 小號 | 幾分之一秒 | 分數 | 978 |
| 五 | 時區標識 | 區號 | 美國/洛杉磯;Z; -08:30 |
| z | 時區名稱 | 區域名稱 | 太平洋標準時間;太平洋標準時間 |
| ○ | 區域區域偏移 | 偏移量-O | 格林威治標準時間 8;格林威治標準時間 08:00;UTC-08:00; |
| X | 區域偏移“Z”為零 | 偏移量-X | Z; -08; -0830; -08:30;-083015; -08:30:15; |
| X | 區域偏移 | 偏移量-x | 0000; -08; -0830; -08:30;-083015; -08:30:15; |
| Z | 區域偏移 | 偏移-Z | 0000; -0800; -08:00; |
環境
$ spark-submit --version
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 3.1.2
/_/
Using Scala version 2.12.10, OpenJDK 64-Bit Server VM, 1.8.0_312
Branch HEAD
Compiled by user centos on 2021-05-24T04:27:48Z
Revision de351e30a90dd988b133b3d00fa6218bfcaba8b8
Url https://github.com/apache/spark
Type --help for more information.
uj5u.com熱心網友回復:
您使用date,它只保留年、月和日。
您可以嘗試tiemstamp如下使用:
scala> spark.sql("select date_format(timestamp '1994-11-05T08:15:30-05:00', 'hh:mm') AS hour_in_day_number").show()
------------------
|hour_in_day_number|
------------------
| 05:15|
------------------
您可以參考https://databricks.com/blog/2020/07/22/a-comprehensive-look-at-dates-and-timestamps-in-apache-spark-3-0.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/429337.html
上一篇:如何將(年、月、日)轉換為Javascript中的擴展年日期格式并處理0到99年
下一篇:如何修復R中的日期拼寫錯誤?
