iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 29
0
Software Development

SQL 30天手把手入門系列 第 29

Day29 - 日期、轉換函數

  • 分享至 

  • xImage
  •  

若你是使用 ORM ( Object Relational Mapping ) 來操作資料庫的話,那麼在建立 Modal、寫入資料之時,多半會有時間欄位來記錄「建立時的日期」和「最近一次的日期」。雖說 SQL 也內建了不少日期相關的操作函數,但各家的寫法多少仍存在差異,詳情還是要以各家的開發文件為主。

日期函數

日期的格式除了生活中常用的 YYYY-MM-DD 外,還有 timestamp 格式。

CURRENT_DATE - 現在日期

不是每家 SQL 都可以使用,如 SQL_SERVER 沒有內建這函數、Oracle, DB2 的寫法略有差異。

CURRENT_DATE

CURRENT_TIMESTAMP - 現在日期和時刻

各家 SQL 都可以使用此語法,但用法上仍有存在些許差異。

CURRENT_TIMESTAMP

EXTRACT - 擷取日期元素

  • SQL_SERVER 沒有內建此函數、Oracle, DB2 的寫法略有差異
  • 回傳值為「數值」
EXTRACT(日期元素 FROM 日期資料)
  • 日期元素有:YEAR, MONTH, DAY, HOUR, MINUTE, SECOND

轉換函數

分為「資料型別」的轉換和「內容值」的轉換

CAST - 型別轉換

/*CAST(目標欄位或是目標值 AS 欲轉換的型別)*/
/*Example*/
CAST('0015' AS INTEGER)

COALESCE - 將 NULL 替換成特定值

如果你的欄位中有可能會出現 NULL 的話,那麼 COALESCE 就是好幫手。它並不能幫你修改 NULL 欄位,但可以將讀取到的 NULL 轉成特定值。

  • 特定值的數量沒有一定,執行時會由左到右回傳第一個「不是 NULL」的值
COALESCE(data1, data2, data3......)

例如要在 Product 中將 info 為 NULL 的項目以 "null data" 的字串來回傳:

SELECT id, name, COALESCE(info, 'null data') FROM Product;

Day29Result1


上一篇
Day28 - 數學、字串函數
下一篇
Day30 - 述詞和完賽結語
系列文
SQL 30天手把手入門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言