时间日期相关函数

函数 描述
NOW() 返回当前的日期和时间
CURDATE() 返回当前的日期
CURTIME() 返回当前的时间
DATE() 提取日期或日期/时间表达式的日期部分
EXTRACT() 返回日期/时间按的单独部分
DATE_ADD() 给日期添加指定的时间间隔
DATE_SUB() 从日期减去指定的时间间隔
DATEDIFF() 返回两个日期之间的天数
DATE_FORMAT() 用不同的格式显示日期/时间

NOW()

返回当前的日期和时间

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2022-04-19 14:34:30 |
+---------------------+
1 row in set (0.00 sec)

mysql> select now(),curdate(),curtime();
+---------------------+------------+-----------+
| now()               | curdate()  | curtime() |
+---------------------+------------+-----------+
| 2022-04-19 14:36:15 | 2022-04-19 | 14:36:15  |
+---------------------+------------+-----------+
1 row in set (0.00 sec)

CURDATE()

返回当前的日期

mysql> select curdate();
+------------+
| curdate()  |
+------------+
| 2022-04-19 |
+------------+
1 row in set (0.00 sec)

CURTIME()

返回当前的时间

mysql> select curtime();
+-----------+
| curtime() |
+-----------+
| 14:35:17  |
+-----------+
1 row in set (0.00 sec)

DATE()

DATE() 函数提取日期或日期/时间表达式的日期部分

EXTRACT()

EXTRACT() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。

语法:EXTRACT(unit FROM date)

  • date 参数是合法的日期表达式。
  • unit 参数可以是下列的值:

DATE_ADD()

DATE_ADD() 函数向日期添加指定的时间间隔。

语法:DATE_ADD(date,INTERVAL expr type)

  • date 参数是合法的日期表达式。
  • expr 参数是您希望添加的时间间隔。
  • type 参数可以是下列值:

DATE_SUB()

从日期减去指定的时间间隔

格式:DATE_SUB(date,INTERVAL expr type)

  • date 参数是合法的日期表达式。
  • expr 参数是您希望添加的时间间隔。
  • type 参数可以是下列值:
可选值 说明
MICROSECOND 微秒
SECOND
MINUTE
HOUR 小时
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH 年月

示例:

mysql> SELECT DATE_SUB('2022-06-06',INTERVAL 1 DAY);
+---------------------------------------+
| DATE_SUB('2022-06-06',INTERVAL 1 DAY) |
+---------------------------------------+
| 2022-06-05                            |
+---------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT DATE_SUB(CURDATE(),INTERVAL 1 DAY);
+------------------------------------+
| DATE_SUB(CURDATE(),INTERVAL 1 DAY) |
+------------------------------------+
| 2022-04-18                         |
+------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT DATE_SUB('2022-01-04 12:00:09',INTERVAL 1 second);
+---------------------------------------------------+
| DATE_SUB('2022-01-04 12:00:09',INTERVAL 1 second) |
+---------------------------------------------------+
| 2022-01-04 12:00:08                               |
+---------------------------------------------------+
1 row in set (0.00 sec)

DATEDIFF()

DATE_FORMAT()