MySQL:如何在查询中添加一天到date时间字段
在我的表中,我有一个名为eventdate
的datetime
格式的字段,如2010-05-11 00:00:00
。
我如何做一个查询,以便增加一天的eventdate
例如,如果今天是2010-05-11
,我想在where
子句中显示返回所有logging与明天的date。
更新:
我试过这个:
select * from fab_scheduler where custid = 1334666058 and DATE_ADD(eventdate, INTERVAL 1 DAY)
但不幸的是,即使我添加大于1的间隔,它也会返回相同的logging。
结果:
2010-05-12 00:00:00
但是我只想select明天的logging。
您可以使用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)
SELECT DATE_ADD(eventdate, INTERVAL 1 DAY)
MySQL文档
有一个去与此,因为这是我将如何做:)
SELECT * FROM fab_scheduler WHERE custid = '123456' AND CURDATE() = DATE(DATE_ADD(eventdate, INTERVAL 1 DAY))
如果你能使用NOW(),这将是最简单的forms:
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())
别名,并且将仅返回date时间数据types的date部分;
它可以使用MySQL特定的语法糖:
SELECT ... date_field + INTERVAL 1 DAY
看起来更漂亮,而不是DATE_ADD函数
这个怎么样:
select * from fab_scheduler where custid = 1334666058 and eventdate = eventdate + INTERVAL 1 DAY
你可以试试这个:
SELECT DATE(DATE_ADD(m_inv_reqdate, INTERVAL + 1 DAY)) FROM tr08_investment
$date = strtotime(date("Ymd", strtotime($date)) . " +1 day");
或者简单地说:
date("Ymd H:i:s", time()+((60*60)*24));