2016-12-13 6 views
1

매년 mysqli 데이터베이스에 이벤트가 있습니다. 다시 이벤트가 발생하기 때문에 현재 이벤트가 완료된 후 정확히 1 년 후에 새 이벤트를 작성하는 쿼리를 설정했습니다.mysqli 쿼리 날짜 간격

새로운 날짜를 현재 날짜에서 정확히 1 년이 아닌 1 년 후에 지정된 날짜로 설정할 수 있는지 궁금합니다.

예를 들어 내 일정 날짜는 1 월 6 일 금요일 일 수 있지만 6 월 1 일 토요일은 토요일입니까?

이유는 내 이벤트는 일반적으로 내가이의 값에서 하루에 정확히 일년 나에게 일을 줄 것이라고 말했다 같은 다음 쿼리

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

를 사용하여, 올해의 첫 번째 금요일에 개최되는 eventDate하지만 금요일 일 것이라고 보장하지는 않습니다. 금요일 날짜가 1 년인지 확인하기 위해 수정할 수 있습니까? 누가 복음

답변

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 (날짜, 'w %')은 요일을 반환합니다. 0 = 일요일 ..6 = 토요일. 5는 금요일입니다.

따라서이 쿼리는 5 - " '다음 연도 날짜의 % w'일을 더합니다.

"다음 해의 % w"가 5 일 경우 0 일을 추가하고, 4 일 경우 1 일을 더하고, 6 일이면 -1 일을 더합니다.