ADDDATE | ADDTIME | CURDATE | CURRENT_DATE |
CURRENT_TIME | CURRENT_TIMESTAMP | CURTIME | DATE |
1、ADDDATE
ADDDATE(date, days)
:在指定的日期/时间上加上指定的时间间隔,并返回新的日期/时间。
语法:
1、ADDDATE(date, days)
2、ADDDATE(date, INTERVAL value unit)
date:
需要操作的日期。
days:
在date
上加上的天数。
value:
时间/日期间隔。正数和负数都是允许的。
unit:
时间/日期间隔的单位。
间隔单位:
| 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 |
返回值:
- 如果
date
参数是DATE
类型,并且时间间隔为YEAR
,MONTH
或者DAY
,返回DATE
。- 如果
date
参数是DATE
类型,并且时间间隔为HOURS
,MINUTES
或者SECONDS
,返回DATETIME
。- 如果
date
参数是DATETIME
类型,返回DATETIME
。- 如果
date
参数是TIME
类型,并且时间间隔为YEAR
,MONTH
或者DAY
,返回DATETIME
。- 如果
date
参数是TIME
类型,并且计算只涉及HOURS
,MINUTES
和SECONDS
部分,返回TIME
。(开始于 MySQL 8.0.28)
SELECTADDDATE(now(), 10),ADDDATE('2024-10-11', -10)
SELECTADDDATE('2024-10-11', INTERVAL 10 DAY),ADDDATE('2024-10-11', INTERVAL 10 HOUR)
SELECTADDDATE('2024-10-11 10:00:00', INTERVAL 10 HOUR),ADDDATE('2024-10-11 10:00:00', INTERVAL 10 MINUTE)
SELECTADDDATE(CURDATE(), INTERVAL 10 HOUR),ADDDATE(NOW(), INTERVAL 10 MINUTE)
2、ADDTIME
ADDTIME(time1, time2)
:在指定的时间上加上指定的时间间隔并返回结果。
time1:
它是一个 datetime 或者 time 表达式。
time2:
它是个时间表达式。它可以是正数或者负数。
给指定的时间加上 10 秒钟
SELECTADDTIME('2024-10-11 10:10:10', 10),ADDTIME('10:10:10', 10)
给指定的时间加上 1 分钟
SELECTADDTIME('10:10:10',100),ADDTIME('10:10:10', '100'),ADDTIME('10:10:10', '0:01:00')
给指定的时间加上和减去 1 小时 10 分钟 10 秒 10 微秒
SELECTADDTIME('10:00:00', '01:10:10.000010'),ADDTIME('10:00:00', '-01:10:10.000010'),SUBTIME('10:00:00', '01:10:10.000010')
3、CURDATE
CURDATE()
:按 YYYY-MM-DD
或 YYYYMMDD
格式返回系统的当前日期。
返回系统的当前日期
SELECTCURDATE(),CURDATE() + 0;
CURDATE() + N
意味着当前日期加上一个数字。比如,系统当前日期加 1,结果为 YYYYMMDD
格式
SELECT CURDATE() + 1;
-- 结果
+---------------+
| CURDATE() + 1 |
+---------------+
| 20241012 |
+---------------+
4、CURRENT_DATE
CURRENT_DATE()
:按 YYYY-MM-DD
或 YYYYMMDD
格式返回系统的当前日期。与CURDATE()函数完全相同。
SELECTCURRENT_DATE,CURRENT_DATE(),CURRENT_DATE() + 0;
-- 结果
+--------------+----------------+--------------------+
| CURRENT_DATE | CURRENT_DATE() | CURRENT_DATE() + 0 |
+--------------+----------------+--------------------+
| 2024-10-11 | 2024-10-11 | 20241011 |
+--------------+----------------+--------------------+
5、CURRENT_TIME
CURRENT_TIME()
:按 hh:mm:ss
格式返回系统的当前时间。
SELECT CURRENT_TIME,CURRENT_TIME(),CURRENT_TIME() + 0;
-- 结果
+--------------+----------------+--------------------+
| CURRENT_TIME | CURRENT_TIME() | CURRENT_TIME() + 0 |
+--------------+----------------+--------------------+
| 02:11:03 | 02:11:03 | 21103 |
+--------------+----------------+--------------------+
6、CURRENT_TIMESTAMP
CURRENT_TIMESTAMP()
:按 YYYY-MM-DD hh:mm:ss
格式返回当前时间和日期。与 NOW() 函数完全相同。
SELECT CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP() + 1;--结果
+---------------------+-------------------------+
| CURRENT_TIMESTAMP() | CURRENT_TIMESTAMP() + 1 |
+---------------------+-------------------------+
| 2024-10-11 02:29:32 | 20241011022933 |
+---------------------+-------------------------+
7、CURTIME
CURTIME()
:按 hh:mm:ss
格式返回系统的当前时间。与 CURRENT_TIME函数完全相同。
SELECT CURTIME(), CURTIME() + 0;
-- 结果
+-----------+---------------+
| CURTIME() | CURTIME() + 0 |
+-----------+---------------+
| 02:04:35 | 20435 |
+-----------+---------------+
8、DATE
DATE(expr)
:从日期时间表达式中提取日期部分并返回。
如果指定的表达式不是一个合法的日期或者日期时间,
DATE()
函数将返回NULL
。如果参数为
NULL
,DATE()
函数将返回NULL
。
SELECTDATE('2024-10-11'),DATE('2024-10-11 10:10:10'),DATE(NOW()),DATE('2024-02-30'),DATE('Not A Date'),DATE(NULL)