iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 23
0
AI & Data

作者超囉嗦,但一天只要十分鐘的MYSQL真.新手教學系列 第 23

第二十三日-MYSQL常用時間函數:加加減減各種日期選取

  • 分享至 

  • xImage
  •  

「撈日報、週報、月報、年報」、
「撈每個月週四的報表」、
「把2020/10/07改成2020/10」,
處理資料時,常常會接到各種和時間有關的需求,
要列出MYSQL的時間相關函數可能需要很大的篇幅(笑)。

今天介紹一些新手比較需要知道的時間函數,
函數其實不用背,重點在知道要這種功能的函式可以使用,
用到的時候知道去GOOGLE,這樣就夠了!
下面分成現在時間、計算時間跟取出時間三個部份來介紹。

現在時間

  • 現在的日期和時間 NOW()
select NOW();
2020-10-06 20:57:28
  • 現在的日期 CURDATE()
SELECT CURDATE();;
2020-10-06
  • 現在的時間 CURTIME()
SELECT CURTIME();
20:57:28

計算時間

時間的計算會和單位有關,
有可能要加減一天,或加減一秒等等,
因此先來看常用的時間單位寫法。

  • 增加時間 DATE_ADD()

用法為
DATE_ADD(日期,INTERVAL 數字 單位)
如果你是DATE_ADD(10月6日,INTERVAL 1 日),
等於是說要10月6日加上一天,
如果加超過30天,會自動把月份進位。

SELECT DATE_ADD(NOW(),INTERVAL 60 day) ;
2020-12-05 20:14:26
  • 減少時間 DATE_SUB()

    DATE_SUB(日期,INTERVAL 數字 單位)
SELECT DATE_SUB(NOW(),INTERVAL 60 day) ;
2020-08-07 20:15:00
  • 相差幾天 DATEDIFF()

    DATEDIFF(日期1,日期2)
    會回傳兩個日期的相差天數
SELECT DATEDIFF(NOW(),'2020-01-01') ;
279

取出時間

取出時間相關函數基本用法簡單,
在函數的括號中加上日期(年/月/日)或日期跟時間(如下),
像這樣:

SELECT MONTH('2020-10-06 20:05:14');

因此下面以表格呈現函數名稱、功能和執行結果。
帶入參數為 '2020-10-06 20:05:14'。


上一篇
第二十二日-MYSQL聚合函數:MAX、MIN、AVG、SUM、COUNT
下一篇
第二十四日-MYSQL常用字串函數:取字串長度、取部分字串
系列文
作者超囉嗦,但一天只要十分鐘的MYSQL真.新手教學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言