MySQL добавляет дни к дате - PullRequest
       1

MySQL добавляет дни к дате

39 голосов
/ 19 октября 2011

У меня есть таблица в MySQL. Как бы выглядел оператор SQL для добавления, скажем, 2 дня к текущему значению даты в таблице?

UPDATE classes 
SET 
date = date + 1
where id = 161

это добавляет одну секунду к значению, я не хочу обновлять время, я хочу добавить два дня?

Ответы [ 9 ]

80 голосов
/ 19 октября 2011

Предполагая, что ваше поле имеет тип date (или аналогичный):

SELECT DATE_ADD(`your_field_name`, INTERVAL 2 DAY) 
FROM `table_name`;

В приведенном вами примере это может выглядеть следующим образом:

UPDATE classes 
SET `date` = DATE_ADD(`date` , INTERVAL 2 DAY)
WHERE `id` = 161;

Этот подходработает с datetime тоже.

7 голосов
/ 19 октября 2011
UPDATE table SET nameofdatefield = ADDDATE(nameofdatefield, 2) WHERE ...
4 голосов
/ 22 марта 2013

Этот запрос подходит для извлечения значений между текущей датой и ее следующими 3 датами

SELECT * FROM tableName
WHERE columName BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 3 DAY)

Это в конечном итоге добавит дополнительные 3 дня буфера к текущей дате.

2 голосов
/ 19 октября 2011
update tablename set coldate=DATE_ADD(coldate, INTERVAL 2 DAY)
1 голос
/ 19 октября 2011
 DATE_ADD(FROM_DATE_HERE, INTERVAL INTERVAL_TIME_HERE DAY) 

даст дату после настройки ИНТЕРВАЛА

например.

DATE_ADD(NOW(), INTERVAL -1 DAY) for deducting 1 DAY from current Day
DATE_ADD(NOW(), INTERVAL 2 DAY)  for adding 2 Days

Вы можете использовать как

UPDATE classes WHERE date=(DATE_ADD(date, INTERVAL 1 DAY)) WHERE id=161
1 голос
/ 19 октября 2011
SELECT DATE_ADD(CURDATE(), INTERVAL 2 DAY)
1 голос
/ 19 октября 2011

Для ваших нужд:

UPDATE classes 
SET `date` = DATE_ADD(`date`, INTERVAL 2 DAY)
WHERE id = 161
0 голосов
/ 18 декабря 2018

Вы можете покинуть функцию date_add.

UPDATE `table` 
SET `yourdatefield` = `yourdatefield` + INTERVAL 2 DAY
WHERE ...
0 голосов
/ 06 февраля 2012
SET date = DATE_ADD( fieldname, INTERVAL 2 DAY )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...