MySQL的CURRENT_DATE(),NOW(),DATE_FORMAT()函數的應用,類型轉換及操作匯總


內容簡介

datetime類型和timestamp類型的取值范圍,CURRENT_DATE()函數應用,NOW()函數應用,DATE_FROMAT()函數取星期,日期、字符串、時間戳相互轉換等。

時間范圍

datetime類型范圍:1000-01-01 00:00:00 ~ 9999-12-31 23:59:59

timestamp類型范圍:1970-01-01 08:00:01 ~ 2038-01-19 11:14:07

CURRENT_DATE()函數

#獲取當前日期
SELECT CURRENT_DATE() AS newDate;    #2019-05-20
#當前日期加1天(其他天數方法一樣)
SELECT DATE_ADD(CURRENT_DATE(), INTERVAL 1 DAY) AS newDate;    #2019-05-21
#當前日期減1天
SELECT DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) AS newDate;   #2019-05-19
#當前日期加1個月
SELECT DATE_ADD(CURRENT_DATE(), INTERVAL 1 MONTH) AS newDate;  #2019-06-20
#當前日期減1個月
SELECT DATE_ADD(CURRENT_DATE(), INTERVAL -1 MONTH) AS newDate; #2019-04-20
#當前日期加1年
SELECT DATE_ADD(CURRENT_DATE(), INTERVAL 1 YEAR) AS newDate;   #2020-05-20
#當前日期減1年
SELECT DATE_ADD(CURRENT_DATE(), INTERVAL -1 YEAR) AS newDate;  #2018-05-20

#指定日期加1天(可將DAY換為MONTH,YEAR來實現加1個月,1年)
SELECT DATE_ADD('2019-05-02', INTERVAL 1 DAY) AS newDate;    #2019-05-03
#指定日期減1天(可將DAY換為MONTH,YEAR來實現減1個月,1年)
SELECT DATE_ADD('2019-05-02', INTERVAL -1 DAY) AS newDate;   #2019-05-01

#當前時間添加1小時10分鍾10秒鍾
SELECT DATE_ADD(NOW(), INTERVAL '1:10:10' HOUR_SECOND) AS newTime;    #2019-05-20 15:59:32
#指定時間添加1小時10分鍾10秒鍾
SELECT DATE_ADD('2019-04-17 2:00:00', INTERVAL '1:10:10' HOUR_SECOND) AS newTime;    #2019-04-17 03:10:10

NOW()函數

#獲取當前時間
SELECT NOW() AS newTime;    #2019-05-20 14:28:41
#當前時間減30秒
SELECT (NOW() - INTERVAL 30 SECOND) AS newTime;    #2019-05-20 14:29:31
#當前時間加30秒
SELECT (NOW() + INTERVAL 30 SECOND) AS newTime;    #2019-05-20 14:29:31
#當前時間減30分鍾
SELECT (NOW() - INTERVAL 30 MINUTE) AS newTime;    #2019-05-20 14:02:26
#當前時間加30分鍾
SELECT (NOW() + INTERVAL 30 MINUTE) AS newTime;    #2019-05-20 15:02:41
#當前時間減1天
SELECT (NOW() - INTERVAL 1 DAY) AS newTime;        #2019-05-19 14:33:26
#當前時間加1天
SELECT (NOW() + INTERVAL 1 DAY) AS newTime;        #2019-05-21 14:33:33
#當前時間減1個月
SELECT (NOW() - INTERVAL 1 MONTH) AS newTime;        #2019-04-20 14:34:10
#當前時間加1個月
SELECT (NOW() + INTERVAL 1 MONTH) AS newTime;        #2019-06-20 14:34:47
#當前時間減1年
SELECT (NOW() - INTERVAL 1 YEAR) AS newTime;        #2018-05-20 14:35:09
#當前時間加1年
SELECT (NOW() + INTERVAL 1 MONTH) AS newTime;        #2019-06-20 14:35:23

#指定時間的加減,將上面的NOW()函數換為指定日期時間即可,以加30分鍾為例,如下:
SELECT ('2019-01-02 12:30:00' + INTERVAL 30 MINUTE) AS newTime;        #2019-01-02 13:00:00

日期取星期幾

# 1:星期一 2:星期二 3:星期三 4:星期四 5:星期五 6:星期六 0:星期日
SELECT DATE_FORMAT('2019-05-20','%w') AS weekDay FROM DUAL;    #1

# 2:星期一 3:星期二 4:星期三 5:星期四 6:星期五 7:星期六 1:星期日
SELECT DAYOFWEEK('2019-05-20') AS weekDay;     #2

# 0:星期一 1:星期二 2:星期三 3:星期四 4:星期五 5:星期六 6:星期日
SELECT WEEKDAY('2019-05-20') AS weekDay;    #0

#可將具體日期換為CURRENT_DATE()函數取當前日期,如下:
SELECT DATE_FORMAT(CURRENT_DATE(),'%w') AS weekDay FROM DUAL;
SELECT DAYOFWEEK(CURRENT_DATE()) AS weekDay; 
SELECT WEEKDAY(CURRENT_DATE()) AS weekDay;

類型轉換

日期、字符串、時間戳互轉轉換請參考:MYSQL日期 字符串 時間戳互轉

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM