我在MySQL查询中使用now()
。
INSERT INTO table SET data = '$data', date = now()
但是我想给这个日期加1天(这样date
应该包含明天)。
这可能吗?
我在MySQL查询中使用now()
。
INSERT INTO table SET data = '$data', date = now()
但是我想给这个日期加1天(这样date
应该包含明天)。
这可能吗?
您可以使用:
NOW() + INTERVAL 1 DAY
如果你只对日期感兴趣,而不是日期和时间,那么你可以使用CURDATE代替NOW:
CURDATE() + INTERVAL 1 DAY
DATE_ADD(NOW(), INTERVAL 1 DAY)
的意思是将当前日期加上一天。 - Konsumierer最好使用引用的`data`
和`date`
。我记得这些可能是保留字。
INSERT INTO `table` ( `data` , `date` ) VALUES('".$date."',NOW()+INTERVAL 1 DAY);
INSERT INTO table(data, date) VALUES ('$data', now() + interval 1 day)
INSERT INTO `table` ( `data` , `date` ) VALUES('".$data."',NOW()+INTERVAL 1 DAY);
您想在日期值上添加时间吗? MySQL间隔值用于日期和时间计算。有多种方法可以创建间隔值。
一种方法是在查询中使用以下表达式:
date [ + 或 - ] INTERVAL value [ 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