MySQL现在()+1天

Qia*_*iao 203 mysql sql datetime

now()在MySQL查询中使用.

INSERT INTO table SET data = '$data', date = now()
Run Code Online (Sandbox Code Playgroud)

但是我想在这个日期添加1天(因此date明天应该包含).
可能吗?

Mar*_*ers 437

您可以使用:

NOW() + INTERVAL 1 DAY
Run Code Online (Sandbox Code Playgroud)

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

CURDATE() + INTERVAL 1 DAY
Run Code Online (Sandbox Code Playgroud)

  • 或者`DATE_ADD(NOW(),INTERVAL 1 DAY)` (28认同)
  • 如果大于1,则“ day”不变为复数:“ 7 DAY”等有效。(对于那些好奇的人。) (2认同)

小智 8

更好地使用引用`data``date`.AFAIR这些可能是保留字我的版本是:

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


小智 5

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


小智 5

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


ucM*_*dia 5

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

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

日期[ +- ]间隔 [ UNIT ]

  • UNIT是要加/减的间隔类型。它可以是以下值之一
微秒 第二 分钟
小时 星期
四分之一

请参阅此处的完整列表

  • 请注意,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
Run Code Online (Sandbox Code Playgroud)

更多示例

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
Run Code Online (Sandbox Code Playgroud)