iT邦幫忙

2022 iThome 鐵人賽

DAY 25
0
自我挑戰組

三十天,PG與我系列 第 25

PostgreSQL語法-時間與日期的使用

  • 分享至 

  • xImage
  •  

資料型態

TIMESTAMP:表示"時間戳"(日期+時間)
TIME:表示"時間"(最大單位為小時)
DATE:日期(年+月+日)
INTERVAL:表示一段時間(上面兩單位相減的結果)

TIMESTAMP

Postgres支援自動偵測時間的格式,將輸入的字串轉型為TIMESTAMP的格式即可
https://ithelp.ithome.com.tw/upload/images/20220925/2011493468fQnGcxGP.png
有了時間就會涉及到時區的設定,在直接將字串做轉型的情況下,Postgres是不會記錄時區的,相當於轉成TIMESTAMP WITHOUT TIME ZONE,如果需要紀錄時區的話就轉成TIMESTAMP WITH TIME ZONE,也可以選擇性在字串的後面加上時區名稱以指定儲存的時區。
https://ithelp.ithome.com.tw/upload/images/20220925/20114934cktC8kj8PY.png
(指定時區的情形)
https://ithelp.ithome.com.tw/upload/images/20220925/20114934bTYQp91M70.png

DATE

由於Postgres資料庫支援日期字串的偵測,所以一樣透過轉型的方式就可以了
https://ithelp.ithome.com.tw/upload/images/20220925/20114934uqoXPwZYLe.png

INTERVAL

透過字串轉型來產生INTERVAL的資料型態
https://ithelp.ithome.com.tw/upload/images/20220925/20114934dUWBRdNwr3.png
兩個INTERVAL之間可以互相加減
https://ithelp.ithome.com.tw/upload/images/20220925/20114934SZVY7Rtdwe.png
也可以將INTERVAL和日期與時間相關的資料型態做加減
https://ithelp.ithome.com.tw/upload/images/20220925/20114934b3GVlO1Bss.png
如果將兩個TIMESTAMP相減,回傳的就是INTERVAL的資料型態
https://ithelp.ithome.com.tw/upload/images/20220925/20114934xfMPFBA4wm.png
(有關兩個時間資料型態進行運算之後會回傳的資料型態,可以參考這篇文件
https://www.postgresql.org/docs/current/functions-datetime.html#OPERATORS-DATETIME-TABLE
)

將時間做格式化輸出

可以使用TO_CHAR() funtion來達到目的,左邊參數放timestamp,右邊放format string
(格式化的參數,可以參考以下文件:
https://docs.postgresql.tw/the-sql-language/functions-and-operators/data-type-formatting-functions
)
https://ithelp.ithome.com.tw/upload/images/20220925/20114934XC5dVQiMT9.png


上一篇
PostgreSQL資料庫備份還原
下一篇
PostgreSQL ALTER指令的使用
系列文
三十天,PG與我30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言