我在MySQL查询中使用now()。
INSERT INTO table SET data = '$data', date = now()
但是我想在这个日期上加1天(所以这个日期应该包含明天)。 这可能吗?
我在MySQL查询中使用now()。
INSERT INTO table SET data = '$data', date = now()
但是我想在这个日期上加1天(所以这个日期应该包含明天)。 这可能吗?
当前回答
INSERT INTO表(数据,日期)VALUES ('$data', now() +间隔1天)
其他回答
你可以使用:
NOW() + INTERVAL 1 DAY
如果你只对日期感兴趣,而不是日期和时间,那么你可以使用CURDATE而不是NOW:
CURDATE() + INTERVAL 1 DAY
INSERT INTO表(数据,日期)VALUES ('$data', now() +间隔1天)
要向日期值添加时间吗?MySQL间隔值用于日期和时间计算。有多种方法可以创建间隔值。
一种方法是在查询中使用以下表达式:
日期[+或-]间隔值[单位]
UNIT是要加/减的间隔类型。它可以是以下值之一
MICROSECOND | SECOND | MINUTE |
HOUR | DAY | WEEK |
MONTH | QUARTER | YEAR |
点击这里查看完整列表。
注意,INTERVAL和UNIT是不区分大小写的。
由于月和年的长度不同,日期算术不如时间算术简单,因此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
最好使用带引号的“data”和“date”。当然,这些话可能有些含蓄 我的版本是:
INSERT INTO `table` ( `data` , `date` ) VALUES('".$date."',NOW()+INTERVAL 1 DAY);
INSERT INTO `table` ( `data` , `date` ) VALUES('".$data."',NOW()+INTERVAL 1 DAY);