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日期 字符串 时间戳互转

 

标签: MySQL, CURRENT_DATE, DATE_ADD, 日期类型转换

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值