MySQL的now()函数加上1天

241

我在MySQL查询中使用now()

INSERT INTO table SET data = '$data', date = now()

但是我想给这个日期加1天(这样date应该包含明天)。
这可能吗?


6
DATE_ADD函数是MySQL的一个日期时间函数,它允许将指定的时间间隔加到给定的日期或时间上,并返回结果。该函数接受三个参数:待添加的时间间隔、待添加的日期或时间以及时间单位。例如,使用DATE_ADD函数将当前日期增加3天,可以这样写:SELECT DATE_ADD(CURDATE(), INTERVAL 3 DAY); - zod
5个回答

500

您可以使用:

NOW() + INTERVAL 1 DAY

如果你只对日期感兴趣,而不是日期和时间,那么你可以使用CURDATE代替NOW:

CURDATE() + INTERVAL 1 DAY

32
DATE_ADD(NOW(), INTERVAL 1 DAY) 的意思是将当前日期加上一天。 - Konsumierer
8
如果超过1个,"day"不会变成复数:"7 DAY"等是有效的。(对于那些好奇的人。) - HoldOffHunger

11

最好使用引用的`data``date`。我记得这些可能是保留字。

INSERT INTO `table` ( `data` , `date` ) VALUES('".$date."',NOW()+INTERVAL 1 DAY);

6
尝试执行:INSERT INTO table(data, date) VALUES ('$data', now() + interval 1 day)

5
INSERT INTO `table` ( `data` , `date` ) VALUES('".$data."',NOW()+INTERVAL 1 DAY);

3

您想在日期值上添加时间吗? MySQL间隔值用于日期和时间计算。有多种方法可以创建间隔值。

一种方法是在查询中使用以下表达式:

date [ +- ] INTERVAL value [ UNIT ]

  • UNIT 是要添加/减去的时间类型,可以是以下值之一
MICROSECOND 微秒 SECOND 秒 MINUTE 分钟
HOUR 小时 DAY 天 WEEK 周
MONTH 月份 QUARTER 季度 YEAR 年份

完整列表请参见此处

  • 注意间隔和单位不区分大小写。

由于月份和年份的长度不同,因此日期运算比时间运算更加复杂。因此MySQL提供了特殊函数。或者,您可以使用 DATE_ADD()DATE_SUB() 函数,将时间/日期间隔添加或减去日期值,然后返回结果。

示例

-- Results were the same for all, '2018-05-02'

DATE_ADD('2018-05-01',INTERVAL 1 DAY);

'2018-05-01' + INTERVAL 1 DAY  

'2018-05-01' + INTERVAL 24 HOUR

更多例子

SELECT DATE_ADD('2100-12-31 23:59:59',INTERVAL '1:1' MINUTE_SECOND);-- '2101-01-01 00:01:00'

SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY);-- '1997-12-02'

INSERT INTO `table` ( `title` , `date` ) 
       VALUES('tomorrow never dies',NOW()+INTERVAL 1 DAY); --insert tomorrow date

SELECT DATE_ADD( NOW(), INTERVAL 1 DAY);--tomorrow date

SELECT NOW() + INTERVAL 1 DAY;--tomorrow date

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接