MySQL 如何在NOW()和CURDATE()函数中使用INTERVAL关键字
MySQL的NOW()和CURDATE()函数都是用来获取当前日期和时间的函数。但是有时候我们希望获取的时间和日期不仅仅是当前的,而是在当前的基础上加上或减去一定的时间或天数。在MySQL中,我们可以使用INTERVAL关键字来实现这个功能。
阅读更多:MySQL 教程
NOW()函数
首先,我们先介绍一下NOW()函数。NOW()函数返回当前日期和时间,格式为YYYY-MM-DD HH:MM:SS。
SELECT NOW();
-- 返回值:2022-03-08 14:28:36
如果我们需要在当前时间的基础上加上一段时间,比如在当前时间的基础上加上10秒钟,可以使用如下的SQL语句:
SELECT NOW() + INTERVAL 10 SECOND;
-- 返回值:2022-03-08 14:28:46
需要注意的是,上面的语句中,INTERVAL后面的时间是用单数形式,比如10 SECOND而不是10 SECONDS。
我们还可以使用MINUTE、DAY、WEEK、MONTH等单位来增加或减少时间,比如:
SELECT NOW() + INTERVAL 1 DAY;
-- 返回值:2022-03-09 14:28:36
SELECT NOW() - INTERVAL 1 WEEK;
-- 返回值:2022-03-01 14:28:36
SELECT NOW() + INTERVAL 1 MONTH;
-- 返回值:2022-04-08 14:28:36
CURDATE()函数
CURDATE()函数只返回当前日期,格式为YYYY-MM-DD。使用方式和NOW()函数类似。
SELECT CURDATE();
-- 返回值:2022-03-08
同样可以使用INTERVAL关键字来增加或减少日期。
SELECT CURDATE() + INTERVAL 1 DAY;
-- 返回值:2022-03-09
SELECT CURDATE() - INTERVAL 1 WEEK;
-- 返回值:2022-03-01
SELECT CURDATE() + INTERVAL 1 MONTH;
-- 返回值:2022-04-08
结论
在MySQL的NOW()和CURDATE()函数中使用INTERVAL关键字可以方便地增加或减少时间或日期。需要注意的是UNIT后面的时间必须是单数形式。