MySQL:如何在查询中添加一天到datetime字段

时间:2010-05-11 12:11:38

标签: mysql sql

在我的表格中,我有一个名为eventdate的字段datetime格式,如2010-05-11 00:00:00

如何进行查询,以便将一天添加到eventdate,例如,如果今天是2010-05-11,我想在where子句中显示在明天的日期返回所有记录。

更新

我试过了:

select * from fab_scheduler where custid = 1334666058 and DATE_ADD(eventdate, INTERVAL 1 DAY)

但不幸的是,即使我添加的间隔大于1,它也会返回相同的记录。

结果:

2010-05-12 00:00:00

但我只想选择明天约会的记录。

8 个答案:

答案 0 :(得分:124)

您可以使用DATE_ADD()功能:

... WHERE DATE(DATE_ADD(eventdate, INTERVAL -1 DAY)) = CURRENT_DATE

它也可以在SELECT语句中使用:

SELECT DATE_ADD('2010-05-11', INTERVAL 1 DAY) AS Tomorrow;
+------------+
| Tomorrow   |
+------------+
| 2010-05-12 |
+------------+
1 row in set (0.00 sec)

答案 1 :(得分:17)

SELECT DATE_ADD(eventdate, INTERVAL 1 DAY)

MySQL doc

答案 2 :(得分:5)

顺便说一句,因为这就是我要做的事情:)

SELECT * 
FROM fab_scheduler
WHERE custid = '123456'
AND CURDATE() = DATE(DATE_ADD(eventdate, INTERVAL 1 DAY))

答案 3 :(得分:1)

可以使用MySQL特定的语法糖:

SELECT ... date_field + INTERVAL 1 DAY

看起来更漂亮而不是DATE_ADD函数

答案 4 :(得分:1)

如果你能够使用NOW(),这将是最简单的形式:

SELECT * FROM `fab_scheduler` WHERE eventdate>=(NOW() - INTERVAL 1 DAY)) AND eventdate<NOW() ORDER BY eventdate DESC;

使用MySQL 5.6+查询abowe应该这样做。根据sql server,您可能需要使用CURRDATE()而不是NOW() - 这是DATE(NOW())的别名,并且只返回datetime数据类型的日期部分;

答案 5 :(得分:0)

这个怎么样:

select * from fab_scheduler where custid = 1334666058 and eventdate = eventdate + INTERVAL 1 DAY

答案 6 :(得分:0)

你可以试试这个:

SELECT DATE(DATE_ADD(m_inv_reqdate, INTERVAL + 1 DAY)) FROM  tr08_investment

答案 7 :(得分:-3)

$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 day");

或者,更简单:

date("Y-m-d H:i:s", time()+((60*60)*24));