MySQL: как добавить один день в поле datetime в запросе
В моей таблице у меня есть поле с именем eventdate
в формате datetime
, например 2010-05-11 00:00:00
.
Как сделать запрос, чтобы он добавлял один день к eventdate
, например, если сегодня есть 2010-05-11
, я хочу показать в where
предложение, чтобы вернуть все записи с завтра дата.
Update:
Я пробовал это:
select * from fab_scheduler where custid = 1334666058 and DATE_ADD(eventdate, INTERVAL 1 DAY)
Но, к сожалению, он возвращает ту же запись, даже если я добавляю интервал больше 1.
Результат:
2010-05-12 00:00:00
Но я хочу только выбрать записи с датой завтра.
Ответы
Ответ 1
Вы можете использовать функцию 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)
Ответ 2
SELECT DATE_ADD(eventdate, INTERVAL 1 DAY)
MySQL doc
Ответ 3
Идите с этим, так как я это сделаю:)
SELECT *
FROM fab_scheduler
WHERE custid = '123456'
AND CURDATE() = DATE(DATE_ADD(eventdate, INTERVAL 1 DAY))
Ответ 4
Если вы можете использовать NOW(), это будет простейшая форма:
SELECT * FROM `fab_scheduler` WHERE eventdate>=(NOW() - INTERVAL 1 DAY)) AND eventdate<NOW() ORDER BY eventdate DESC;
С MySQL 5.6+ должен выполняться запрос abowe. В зависимости от сервера sql вам может потребоваться использовать CURRDATE()
вместо NOW()
- который является псевдонимом для DATE(NOW())
и будет возвращать только дату в типе datetime
;
Ответ 5
Можно использовать специальный синтаксический сахар MySQL:
SELECT ... date_field + INTERVAL 1 DAY
Выглядит гораздо красивее вместо функции DATE_ADD
Ответ 6
Как насчет этого:
select * from fab_scheduler where custid = 1334666058 and eventdate = eventdate + INTERVAL 1 DAY
Ответ 7
Вы можете попробовать следующее:
SELECT DATE(DATE_ADD(m_inv_reqdate, INTERVAL + 1 DAY)) FROM tr08_investment
Ответ 8
$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 day");
Или, проще:
date("Y-m-d H:i:s", time()+((60*60)*24));