Datetime模式

適用於:勾選“是”磚的SQL勾選“是”磚運行時

在Databricks中使用datetime有幾個常見的場景:

模式表

Databricks使用下表中的模式字母進行日期和時間戳解析和格式化:

象征

意義

演講

例子

G

時代

文本

廣告;公元

y

一年

一年

2020;20.

D

day-of-year

(3)數量

189

M / L

month-of-year

7;07年;7月;7月

d

月的日期

(3)數量

28

Q /問

quarter-of-year

數字/文本

3;03;第三季度;第三季度的

E

一周中的第幾天

文本

星期二;周二

F

每月的星期幾

數量(1)

3.

一個

am-pm-of-day

am-pm

h

clock-hour-of-am-pm (1 - 12)

(2)數量

12

K

hour-of-am-pm(劃分)

(2)數量

0

k

clock-hour-of-day (24)

(2)數量

0

H

hour-of-day (0-23)

(2)數量

0

minute-of-hour

(2)數量

30.

年代

second-of-minute

(2)數量

55

年代

fraction-of-second

分數

978

V

時區ID

zone-id

美國/ Los_Angeles;Z;塔利班)

z

時區名稱

區域名稱

太平洋標準時間;太平洋標準時間

O

本地化zone-offset

offset-O

格林尼治標準時間+ 8;格林尼治標準時間+喂飼;UTC-08:00;

X

zone-offset ' Z '為零

offset-X

Z;-08;-0830;塔利班);-083015;08:30:15;

x

zone-offset

offset-x

+ 0000;-08;-0830;塔利班);-083015;08:30:15;

Z

zone-offset

offset-Z

+ 0000;-0800;喂飼;

文本轉義

分隔符

單引號

文字

可選的部分開始

可選分段結束

模式字母的數量決定了格式。

  • 文本:文本樣式是根據所使用的模式字母的數量來確定的。少於4個模式字母將使用短文本形式,通常是縮寫,例如day-of-week Monday可能輸出“Mon”。正好4個模式字母將使用全文形式,通常是完整的描述,例如,day-of-week Monday可能輸出“Monday”。5個或更多的字母將失敗。

  • Number(n):這裏的n表示可以使用這種類型的datetime模式的最大字母數。如果字母數為1,則使用最小數字數輸出該值,且不帶填充。否則,將使用數字計數作為輸出字段的寬度,並在必要時填充值0。

  • 數字/文本:如果模式字母的數量為3或更大,則使用上麵的文本規則。否則,使用上麵的數字規則。

  • 分數:使用一個或多個(最多9個)連續“年代”比如字符,嘶嘶,來解析和格式化幾分之一秒。對於解析,可接受的分數長度可以是[1,連續' S '的數量]。對於格式化,分數長度將被填充為連續帶零的“S”的數量。Databricks支持微秒精度的datetime,它有多達6位有效數字,但可以在截斷超過部分的情況下解析納秒。

  • 年份:字母的計數決定使用填充的最小字段寬度。如果字母數為2,則使用簡化的兩位數字形式。對於打印,它輸出最右邊的兩位數字。對於解析,這將使用基礎值2000進行解析,從而得到在2000到2099之間的年份。如果字母計數小於4(但不是2),則該符號僅在負年份輸出。否則,當' G '不存在時,如果超出了襯墊寬度,則輸出符號。7個或更多的字母將失敗。

  • 月:遵循數字/文本的規則。文本形式取決於字母-“米”表示“標準”形式,和“L”是“獨立”形式。這兩種形式隻是在某些語言中有所不同。例如,在俄語中,' Июль '是七月的獨立形式,' Июля '是標準形式。下麵是所有支持的模式字母的示例:

    • “米”“L”:從1開始的一年中的月號。兩者之間沒有區別“米”而且“L”.從1到9的月份沒有填充。

      >選擇date_format日期“1970-01-01”“米”);1>選擇date_format日期“1970-12-01”“L”);12
    • “毫米”“會”:從1開始的一年中的月號。第1-9個月添加零填充。

      >選擇date_format日期“1970-1-01”“會”);01>選擇date_format日期“1970-09-01”“毫米”);09
    • “嗯”標準形式的簡短文本表示。月份模式應該是日期模式的一部分,而不僅僅是一個獨立的月份,除了在英語中stand和獨立形式之間沒有區別的地區。

      >選擇date_format日期“1970-01-01”“d嗯”);11月--通過一個格式模式to_csv()>選擇to_csvnamed_struct“日期”日期“1970-01-01”),地圖“dateFormat”“dd嗯”“場所”“俄羅斯”));01янв
    • “嗯”:以標準形式完整的文本月份表示。它用於解析/格式化月份作為日期/時間戳的一部分。

      > SELECT date_format(date '1970-01-01', 'd MMMM');1月1日—傳遞格式pttern到to_csv() > SELECT to_csv(named_struct('date', date' 1970-01-01'), map('dateFormat', 'd MMMM', 'locale', 'RU'));1января
  • am-pm:輸出一天的am-pm。模式字母數必須為1。

  • 時區ID(V):輸出顯示時區ID。模式字母數必須為2。

  • 時區名稱(z):輸出時區ID的顯示文本名稱。如果字母數為1、2或3,則輸出短名稱。如果字母計數為4,則輸出全名。5個或更多的字母將失敗。

  • 偏移量X和X:根據模式字母的數量格式化偏移量。一個字母隻輸出小時,如' +01 ',除非分鍾不為零,在這種情況下也輸出分鍾,如' +0130 '。兩個字母輸出小時和分鍾,不帶冒號,例如' +0130 '。三個字母輸出小時和分鍾,帶冒號,例如' +01:30 '。四個字母輸出小時、分鍾和可選的秒,不帶冒號,例如' +013015 '。五個字母輸出小時、分鍾和可選的秒,帶冒號,例如' +01:30:15 '。6個或6個以上的字母將失敗。當要輸出的偏移量為零時,模式字母' X '(大寫)將輸出' Z ',而模式字母' X '(小寫)將輸出' +00 ',' +0000 ',或' +00:00 '。

  • 偏移量O:根據模式字母的數量格式化局部偏移量。一個字母輸出本地化偏移量的縮寫形式,這是本地化偏移量文本,例如' GMT ',小時不帶前導零,如果非零則可選2位分鍾和秒,以及冒號,例如' GMT+8 '。四個字母輸出完整的表單,這是本地化的偏移文本,例如' GMT,帶有2位小時和分鍾字段,如果非零則可選第二個字段,以及冒號,例如' GMT+08:00 '。任何其他計數的字母都將失敗。

  • 偏移量Z:根據模式字母的數量格式化偏移量。1、2或3個字母輸出小時和分鍾,不帶冒號,例如' +0130 '。當偏移量為零時,輸出為' +0000 '。四個字母輸出本地化偏移量的完整形式,相當於offset - o的四個字母。如果偏移量為零,則輸出為相應的本地化偏移文本。5個字母輸出小時、分鍾,如果非零則可選秒,帶冒號。如果偏移量為零,則輸出' Z '。6個或6個以上的字母將失敗。

  • 可選部分開始和結束:使用[]定義一個可選的部分,可能是嵌套的。在格式化期間,所有有效數據都將輸出,即使它位於可選部分。在解析過程中,所解析的字符串中可能缺少整個部分。一個可選的節由並最終使用(或者在圖案的末尾)。

  • ' E ', ' F ', ' q '和' q '的符號隻能用於日期時間格式,例如:date_format.它們不允許用於日期時間解析,例如。to_timestamp