欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mysql 常用时间函数

程序员文章站 2024-01-22 20:10:04
...

当前日期

  • CURRENT_DATE
  • curdate
mysql> select current_date(),curdate();
+----------------+------------+
| current_date() | curdate()  |
+----------------+------------+
| 2020-11-03     | 2020-11-03 |
+----------------+------------+

当前时间

  • CURRENT_TIME
  • curtime
mysql> select current_time(),curtime();
+----------------+-----------+
| current_time() | curtime() |
+----------------+-----------+
| 11:11:21       | 11:11:21  |
+----------------+-----------+

当前时间戳(日期时间)

  • CURRENT_TIMESTAMP
  • now
mysql> select current_timestamp(),now();
+---------------------+---------------------+
| current_timestamp() | now()               |
+---------------------+---------------------+
| 2020-11-03 11:11:49 | 2020-11-03 11:11:49 |
+---------------------+---------------------+

日期运算

  • DATE_ADD(date,INTERVAL expr type)
  • DATE_SUB(date,INTERVAL expr type)
    date 是一个 DATETIME 或DATE值,用来指定起始时间。
    expr 是一个表达式,用来指定从起始日期添加或减去的时间间隔值。 Expr是一个字符串;对于负值的时间间隔,它可以以一个 '-'开头。
    type 为关键词,它指示了表达式被解释的方式。
    关键词INTERVA及 type 分类符均不区分大小写。
    若 date 参数是一个 DATE 值,而你的计算只会包括 YEAR、MONTH和DAY部分(即, 没有时间部分), 其结果是一个DATE 值。否则,结果将是一个 DATETIME值。

加一秒

mysql>  select now(),date_add(curdate(),interval 1 second) 日期 ,date_add(curtime(),interval 1 second) 时间,date_add(now(),interval 1 second) 日期时间;
+---------------------+---------------------+----------+---------------------+
| now()               | 日期                | 时间     | 日期时间            |
+---------------------+---------------------+----------+---------------------+
| 2020-11-03 11:23:50 | 2020-11-03 00:00:01 | 11:23:51 | 2020-11-03 11:23:51 |
+---------------------+---------------------+----------+---------------------+
1 row in set (0.00 sec)

加一分

mysql> select now(),date_add(curdate(),interval 1 minute) 日期 ,date_add(curtime(),interval 1 minute) 时间,date_add(now(),interval 1 minute) 日期时间;
+---------------------+---------------------+----------+---------------------+
| now()               | 日期                | 时间     | 日期时间            |
+---------------------+---------------------+----------+---------------------+
| 2020-11-03 11:27:40 | 2020-11-03 00:01:00 | 11:28:40 | 2020-11-03 11:28:40 |
+---------------------+---------------------+----------+---------------------+
1 row in set (0.00 sec)

加小时

mysql> select now(),date_add(curdate(),interval 1 hour) 日期 ,date_add(curtime(),interval 1 hour) 时间,date_add(now(),interval 1 hour) 日期时间;
+---------------------+---------------------+----------+---------------------+
| now()               | 日期                | 时间     | 日期时间            |
+---------------------+---------------------+----------+---------------------+
| 2020-11-03 11:28:48 | 2020-11-03 01:00:00 | 12:28:48 | 2020-11-03 12:28:48 |

加一天

mysql> select now(),date_add(curdate(),interval 1 day) 日期 ,date_add(curtime(),interval 1 day) 时间,date_add(now(),interval 1 day) 日期时间;
+---------------------+------------+----------+---------------------+
| now()               | 日期       | 时间     | 日期时间            |
+---------------------+------------+----------+---------------------+
| 2020-11-03 11:30:07 | 2020-11-04 | 35:30:07 | 2020-11-04 11:30:07 |
+---------------------+------------+----------+---------------------+
1 row in set (0.00 sec)

加一月

mysql> select now(),date_add(curdate(),interval 1 month) 日期 ,date_add(curtime(),interval 1 month) 时间,date_add(now(),interval 1 month) 日期时间;
+---------------------+------------+--------+---------------------+
| now()               | 日期       | 时间   | 日期时间            |
+---------------------+------------+--------+---------------------+
| 2020-11-03 11:31:03 | 2020-12-03 | NULL   | 2020-12-03 11:31:03 |
+---------------------+------------+--------+---------------------+

加一年

mysql> select now(),date_add(curdate(),interval 1 year) 日期 ,date_add(curtime(),interval 1 year) 时间,date_add(now(),interval 1 year) 日期时间;
+---------------------+------------+--------+---------------------+
| now()               | 日期       | 时间   | 日期时间            |
+---------------------+------------+--------+---------------------+
| 2020-11-03 11:32:33 | 2021-11-03 | NULL   | 2021-11-03 11:32:33 |
+---------------------+------------+--------+---------------------+
  • DATEDIFF (date1 ,date2 ) 两个日期差 (天)
mysql> select datediff('2000-01-02 02:02:02','2000-01-01 01:01:01'); 
+-------------------------------------------------------+
| datediff('2000-01-02 02:02:02','2000-01-01 01:01:01') |
+-------------------------------------------------------+
|                                                     1 |
+-------------------------------------------------------+
  • ADDTIME (date2 ,time_interval )

将time_interval(最大到天)加到date2

mysql> select addtime('2010-01-01 01:01:01',' 01 01:01:01');   
+-----------------------------------------------+
| addtime('2010-01-01 01:01:01',' 01 01:01:01') |
+-----------------------------------------------+
| 2010-01-02 02:02:02                           |
+-----------------------------------------------+
  • 日期转字符串
mysql> select date_format(now(), '%Y-%m-%d') from dual; 
+--------------------------------+
| date_format(now(), '%Y-%m-%d') |
+--------------------------------+
| 2020-11-03                     |
+--------------------------------+
1 row in set (0.00 sec)

mysql> select date_format(now(), '%Y-%c-%d %h:%i:%s') from dual; 
+-----------------------------------------+
| date_format(now(), '%Y-%c-%d %h:%i:%s') |
+-----------------------------------------+
| 2020-11-03 02:13:20                     |
+-----------------------------------------+
1 row in set (0.00 sec)
  • 日期 转 成字符串
mysql> select str_to_date('2015-2-04 05:14:15' , '%Y-%c-%d %h:%i:%s') from dual;
+---------------------------------------------------------+
| str_to_date('2015-2-04 05:14:15' , '%Y-%c-%d %h:%i:%s') |
+---------------------------------------------------------+
| 2015-02-04 05:14:15                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)
相关标签: mysql mysql