我在MySQL查询中使用now()。

INSERT INTO table SET data = '$data', date = 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

其他回答

你可以使用:

NOW() + INTERVAL 1 DAY

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

CURDATE() + INTERVAL 1 DAY

INSERT INTO表(数据,日期)VALUES ('$data', now() +间隔1天)

最好使用带引号的“data”和“date”。当然,这些话可能有些含蓄 我的版本是:

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

要向日期值添加时间吗?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