MySQL-常用函数(时间篇)

这篇博客详细介绍了MySQL中关于时间的常用函数,包括日期加减、时间格式化、时间部分提取等,例如:curdate()、curtime()、date_format()、datediff()等,并提供了单位属性表帮助理解各个函数的工作原理。
摘要由CSDN通过智能技术生成

常用函数

  • adddate(date, interval expr unit), adddate(date, days): 时间相加后返回
    • adddate(date, interval expr unit): date日期,expr间隔,unit属性,请看下面unit属性表
    • adddate(date, days): date日期,days天数
mysql> select curdate(), adddate(curdate(), interval 2 day), adddate(curdate(), 2);
+------------+------------------------------------+-----------------------+
| curdate()  | adddate(curdate(), interval 2 day) | adddate(curdate(), 2) |
+------------+------------------------------------+-----------------------+
| 2018-12-12 | 2018-12-14                         | 2018-12-14            |
+------------+------------------------------------+-----------------------+
1 row in set (0.00 sec)
  • addtime(expr1, expr2): 将expr1expr2相加得到时间后返回。使用如下:
mysql> select now(), addtime(now(), '1 1:1'), addtime(now(), '1 1:1:1'), addtime(now(), '1 1:1:1.1');
+---------------------+-------------------------+---------------------------+-----------------------------+
| now()               | addtime(now(), '1 1:1') | addtime(now(), '1 1:1:1') | addtime(now(), '1 1:1:1.1') |
+---------------------+-------------------------+---------------------------+-----------------------------+
| 2018-12-13 10:14:17 | 2018-12-14 11:15:17     | 2018-12-14 11:15:18       | 2018-12-14 11:15:18.1       |
+---------------------+-------------------------+---------------------------+-----------------------------+
1 row in set (0.00 sec)

mysql> select now(), addtime(now(), '1'), addtime(now(), '1.1'), addtime(now(), '1:1'), addtime(now(), '1:1:1.1');
+---------------------+---------------------+-----------------------+-----------------------+---------------------------+
| now()               | addtime(now(), '1') | addtime(now(), '1.1') | addtime(now(), '1:1') | addtime(now(), '1:1:1.1') |
+---------------------+---------------------+-----------------------+-----------------------+---------------------------+
| 2018-12-13 10:14:39 | 2018-12-13 10:14:40 | 2018-12-13 10:14:40.1 | 2018-12-13 11:15:39   | 2018-12-13 11:15:40.1     |
+---------------------+---------------------+-----------------------+-----------------------+---------------------------+
1 row in set (0.00 sec)
  • curdate(): 获取当前日期
mysql> select curdate();
+------------+
| curdate()  |
+------------+
| 2018-11-11 |
+------------+
1 row in set (0.00 sec)
  • current_date(): 获取当前日期,效果与curdate()一样
  • curtime(): 获取当前时间
mysql> select curtime();
+-----------+
| curtime() |
+-----------+
| 10:24:00  |
+-----------+
1 row in set (0.00 sec)
  • current_time(): 获取当前时间,效果与curtime()一样
  • date(expr): 获取指定日期时间expr的日期
mysql> select now(), date(now());
+---------------------+-------------+
| now()               | date(now()) |
+---------------------+-------------+
| 2018-12-13 10:26:37 | 2018-12-13  |
+---------------------+-------------+
1 row in set (0.00 sec)
  • datediff(expr1, expr2): 返回expr1 - expr2之间的天数,expr1expr2可以是日期,也可以是日期时间。值得注意的是,只会计算expr1expr2之间的日期部分:
mysql> select datediff('2018-12-12', '2018-12-11'), datediff('2018-12-12', '2018-12-13'), datediff('2018-12-12', '2018-12-11 23:00:00');
+--------------------------------------+--------------------------------------+-----------------------------------------------+
| datediff('2018-12-12', '2018-12-11') | datediff('2018-12-12', '2018-12-13') | datediff('2018-12-12', '2018-12-11 23:00:00') |
+--------------------------------------+--------------------------------------+-----------------------------------------------+
|                                    1 |                                   -1 |                                             1 |
+--------------------------------------+--------------------------------------+-----------------------------------------------+
1 row in set (0.00 sec)
  • date_add(date, interval expr unit): 日期算术,date加上时间间隔后返回。date可以是日期,也可以是日期时间。expr间隔,unit属性,请看下面unit属性表
mysql> select date_add('2018-12-12 23:00:00', interval 1 day), date_add('2018-12-12 23:00:00', interval -1 day);
+-------------------------------------------------+--------------------------------------------------+
| date_add('2018-12-12 23:00:00', interval 1 day) | date_add('2018-12-12 23:00:00', interval -1 day) |
+-------------------------------------------------+--------------------------------------------------+
| 2018-12-13 23:00:00                             | 2018-12-11 23:00:00                              |
+-------------------------------------------------+--------------------------------------------------+
1 row in set (0.01 sec)
  • date_sub(date, interval expr unit): 日期算术,date减去时间间隔后返回。date可以是日期,也可以是日期时间。expr间隔,unit属性,请看下面unit属性表
mysql> select date_sub('2018-12-12 23:00:00', interval 1 day), date_sub('2018-12-12 23:00:00', interval -1 day);
+-------------------------------------------------+--------------------------------------------------+
| date_sub('2018-12-12 23:00:00', interval 1 day) | date_sub('2018-12-12 23:00:00', interval -1 day) |
+-------------------------------------------------+--------------------------------------------------+
| 2018-12-11 23:00:00                             | 2018-12-13 23:00:00                              |
+-------------------------------------------------+--------------------------------------------------+
1 row in set (0.00 sec)
  • date_format(date, format): date根据format格式化值
mysql> select @date:='2018-12-12';
mysql> select date_format(@date, '%a'), date_format(@date, '%b'), date_format(@date, '%c'), date_format(@date, '%D'), date_format(@date, '%d'), date_format(@date, '%e'), date_format(@date, '%f'), date_format(@date, '%H'), date_format(@date, '%h'), date_format(@date, '%I'), date_format(@date, '%i'), date_format(@date, '%j'), date_format(@date, '%k'), date_format(@date, '%l'), date_format(@date, '%M'), date_format(@date, '%m'), date_format(@date, '%p'), date_format(@date, '%r');
+--------------------------+--------------------------+--------------------------+--------------------------+--------------------------+--------------------------+--------------------------+--------------------------+--------------------------+--------------------------+--------------------------+--------------------------+--------------------------+--------------------------+--------------------------+--------------------------+-------------------------
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值