데이터베이스에 시간 초과 이벤트를 저장했습니다. 이러한 이벤트는 매년, 분기 별, 매월, 매주 및 매일 발생합니다. 그래서 이벤트 유형을 저장하는 테이블을 추가했습니다.타이밍 이벤트에서 mysql 문자열을 정의 된 mysql 변수로 변환
이제는 이벤트 만 선택하고 싶습니다. 그래서 나는 이벤트의 시작 날짜를 선택하고, 그 시간 (YEAR, QUARTER, 등)에 시간을 더한 다음 그 날짜가 오늘 날짜인지를보고 싶다.
이것은 어디 문이 될 것입니다 :
WHERE (
DATEDIFF(NOW(),
DATE_ADD(
IFNULL(
timer.last_trigger,
timer.start_date
),
INTERVAL 1 timer.period_type
)
)
) = 0
그것이 말하는 점에 쿼리 나누기 :
INTERVAL 1 timer.period_type
그해야하기 때문에 같은 : 그래서
INTERVAL 1 YEAR
내 '변수'timer.period_type
을 'YEAR'
값으로 변환하고 싶습니다. 정의 된 mysql 변수 YEAR
. 그리고 그것이 QUARTER, MONTH, WEEK 또는 DAY 일 경우 같은 일을합니다.
방법이 있습니까, 아니면 해결 방법이 있습니까? timer.period_type
의 열 유형을 변경하는 것이 가능합니까? PHP로 데이터를 루핑하는 것을 막고 싶습니다.
내가 아이디어를 좋아하지만, 어떻게 든 CASE 시스템은'INTERVAL 1 YEAR' 작동하지 않습니다 ... 모든 그 해결 방법은? :-) –
물론, 1 년 = 365 일 또는 12 개월이라고합시다. :) – bodi0
아, 알겠습니다. 'INTERVAL 1 YEAR' ** only **는 DATE_ADD() 함수 내에서 작동합니다. 따라서 모든 경우에이 기능을 반복해야합니다. 그에 따라 귀하의 답변을 수정하겠습니다. –