2016-12-13 6 views
1

У меня есть событие в моей базе данных mysqli, из-за которой я возвращаюсь каждый год, я создал запрос, который создаст новое событие ровно через 1 год после окончания текущего события.mysqli query date interval

Мне интересно, могу ли я установить новую дату не ровно 1 год с текущей даты, но до даты указанного дня один год?

например, дата моего мероприятия может быть Fri 6 января 16, но 1 год 6 января - суббота?

Причина в том, мое мероприятие обычно проводится в первую пятницу этого года, так что с помощью следующего запроса

$sql3 = 
mysqli_query($conn,"UPDATE temp_table SET 
eventDate = DATE_ADD(eventDate , INTERVAL 1 YEAR)") 
or die(mysqli_error($conn,"sql3")); 

, как я сказал, что это даст мне дату ровно один год до дня от стоимости eventDate, но это не гарантирует, что это будет пятница, можно ли это изменить, чтобы гарантировать, что это дата пятницы на один год?

Большое спасибо Лука

ответ

0

Попробуйте это:

UPDATE temp_table SET eventDate = 
DATE_ADD(DATE_ADD(eventDate,INTERVAL 1 YEAR), 
INTERVAL 5 - (DATE_FORMAT(DATE_ADD(eventDate, INTERVAL 1 YEAR),'%w')) DAY); 

DATE_FORMAT (дата, '% ш') возвращает день недели. 0 = Sunday..6 = субботу. 5 - в пятницу.

Таким образом, этот запрос добавляет 5 - "% w" дней дня следующего года.

Если «% w» даты следующего года составляет 5, то добавляется 0 дней, если 4, добавляется 1 день, если 6, добавляется -1 день и т. Д.

 Смежные вопросы

  • Нет связанных вопросов^_^