MySQL: как добавить один день в поле datetime в запросе - PullRequest
65 голосов
/ 11 мая 2010

В моей таблице есть поле с именем 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 ]

126 голосов
/ 11 мая 2010

Вы можете использовать функцию 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)
17 голосов
/ 11 мая 2010
SELECT DATE_ADD(eventdate, INTERVAL 1 DAY)

MySQL doc

5 голосов
/ 11 мая 2010

Попробуй, как я бы это сделал:)

SELECT * 
FROM fab_scheduler
WHERE custid = '123456'
AND CURDATE() = DATE(DATE_ADD(eventdate, INTERVAL 1 DAY))
1 голос
/ 11 января 2016

Если вы можете использовать NOW (), это будет простейшая форма:

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

С MySQL 5.6+ запрос выше должен выполняться. В зависимости от сервера sql, вам может потребоваться использовать CURRDATE() вместо NOW() - псевдоним для DATE(NOW()) и будет возвращать только часть даты типа данных datetime;

1 голос
/ 11 мая 2010

Можно использовать специальный синтаксис MySQL:

SELECT ... date_field + INTERVAL 1 DAY

выглядит намного симпатичнее вместо функции DATE_ADD

0 голосов
/ 16 ноября 2016

Вы можете попробовать это:

SELECT DATE(DATE_ADD(m_inv_reqdate, INTERVAL + 1 DAY)) FROM  tr08_investment
0 голосов
/ 15 октября 2014

Как насчет этого:

select * from fab_scheduler where custid = 1334666058 and eventdate = eventdate + INTERVAL 1 DAY
0 голосов
/ 11 мая 2010
$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 day");

Или, проще:

date("Y-m-d H:i:s", time()+((60*60)*24));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...