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)
SELECT
ADDDATE(now(), 10),
ADDDATE('2024-10-11', -10)
SELECT
ADDDATE('2024-10-11', INTERVAL 10 DAY),
ADDDATE('2024-10-11', INTERVAL 10 HOUR)
SELECT
ADDDATE('2024-10-11 10:00:00', INTERVAL 10 HOUR),
ADDDATE('2024-10-11 10:00:00', INTERVAL 10 MINUTE)
SELECT
ADDDATE(CURDATE(), INTERVAL 10 HOUR),
ADDDATE(NOW(), INTERVAL 10 MINUTE)
2、ADDTIME
ADDTIME(time1, time2)
:在指定的时间上加上指定的时间间隔并返回结果。
time1:
它是一个 datetime 或者 time 表达式。
time2:
它是个时间表达式。它可以是正数或者负数。
给指定的时间加上 10 秒钟
SELECT
ADDTIME('2024-10-11 10:10:10', 10),
ADDTIME('10:10:10', 10)
给指定的时间加上 1 分钟
SELECT
ADDTIME('10:10:10',100),
ADDTIME('10:10:10', '100'),
ADDTIME('10:10:10', '0:01:00')
给指定的时间加上和减去 1 小时 10 分钟 10 秒 10 微秒
SELECT
ADDTIME('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
格式返回系统的当前日期。
返回系统的当前日期
SELECT
CURDATE(),
CURDATE() + 0;
CURDATE() + N
意味着当前日期加上一个数字。比如,系统当前日期加 1,结果为 YYYYMMDD
格式
SELECT CURDATE() + 1;
-- 结果
+---------------+
| CURDATE() + 1 |
+---------------+
| 20241012 |
+---------------+
4、CURRENT_DATE
CURRENT_DATE()
:按 YYYY-MM-DD
或 YYYYMMDD
格式返回系统的当前日期。与CURDATE()函数完全相同。
SELECT
CURRENT_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
。
SELECT
DATE('2024-10-11'),
DATE('2024-10-11 10:10:10'),
DATE(NOW()),
DATE('2024-02-30'),
DATE('Not A Date'),
DATE(NULL)