在我的表格中,我有一个名为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
但我只想选择明天约会的记录。
答案 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)
答案 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));