文字與日期格式相互轉換
簡介
本文件將介紹,如何透過函數進行文字與日期之前的格式轉換。
將日期轉換爲文字格式
方法一:TEXT 函數
要用到的函數:
- TEXT 函數:將日期對象轉換爲文字格式。
設定公式爲:
TEXT(DATE(日期時間),'yyyy-MM-dd')
DATE 函數用於將日期時間欄位中的日期值轉換爲日期的序列值。 該數字也是 TEXT 函數的第一個參數。TEXT 函數的第二個參數指定輸出文字字符串所需的格式,即 yyyy-MM-dd。 此格式指定年份應由四位數字表示,月份應由兩位數字表示,日期應由兩位數字表示,並用連字符分隔。
文字的格式可以根據需要進行自由組合,如:
TEXT(DATE(日期時間),'yyyyMMdd')
表示將日期時間欄位轉換爲 yyyyMMdd 格式的文字:
方法二:DATE 函數
要用到的函數:
- DATE 函數:把日期時間(時間戳)轉換成時間對象;
- YEAR 函數:取出時間對象中的年份;
- MONTH 函數:取出時間對象中的月份;
- DAY 函數:取出時間對象中的天數;
- TEXT 函數:將數字轉換爲文字格式;
- CONCATENATE 函數:將多個文字字符串合併成一個文字字符串,把拆分提取的年、月、日和短線符號「-」連接起來。
設定公式爲:
CONCATENATE(TEXT(YEAR(DATE(日期時間))),'-',TEXT(MONTH(DATE(日期時間))),'-',TEXT(DAY(DATE(日期時間))))
DATE 函數用於轉換日期時間欄位中的日期值。 然後將生成的日期序列號作爲參數傳遞給 YEAR、MONTH 和 DAY 函數,這些函數分別提取日期的年、月和日值。 提取的值被傳遞給 TEXT 函數,該函數將它們轉換爲具有特定格式的文字字符串。 使用 CONCATENATE 函數將生成的文字字符串連接在一起,並使用連字符「-」作爲分隔符號。
此方法中,雖然日期取出正確,但是這樣取出的文字 2023-7-5 在月份上只有一位。如果需要統一成 yyyy-MM-dd 的格式,請參考如下操作方法。
關於文字位數的補充
因爲要對月份和日期補足位數,前面拼接一個 0,所以取出的月和日需要先轉成文字,否則直接用 + 號連接就變成了加法。
欄位中的年份肯定是四位數,可以不用考慮。
月份和日期,可能會出現一位數或者兩位數的情況,我們可以統一成兩位數的格式,RIGHT 函數是從右邊取位字符串的函數,只要在月份前面加一個 0,從右邊取兩位即可:
RIGHT('0'+TEXT(MONTH(DATE(日期時間))),2)
表示假設月份爲 12,拼接一個 0 之後,012 取右邊兩位依然是 12;假設月份是 5,拼接一個 0 之後,01 取右邊兩位是 05;這樣就實現了取出月份必定是兩位數的格式。日期同理。
最終設定公式爲:
CONCATENATE(TEXT(YEAR(DATE(日期時間))),'-',RIGHT('0'+TEXT(MONTH(DATE(日期時間))),2),'-',RIGHT('0'+TEXT(DAY(DATE(日期時間))),2))
效果如下:
將文字轉換爲日期格式
要用到的函數:
以文字 yyyyMMdd 的格式爲例,設定公式爲:
DATE(VALUE(MID(單行文字,1,4)),VALUE(MID(單行文字,5,2)),VALUE(MID(單行文字,7,2)))
表示分別提取出單行文字中的年、月、日資訊,轉換成數值格式,再轉換爲日期時間格式: