답변을 검색 한 결과 비슷한 질문에 온라인 답변을 얻었지만 내 용도로 사용할 수 없었습니다. 도움이 필요해.MySQL 쿼리에서 주어진 달의 N 번째 요일의 날짜를 얻으려면 어떻게해야합니까?
저는 반복 일정을 지원하는 캘린더를 만들고 있습니다. 나는 거의 끝났지 만 마지막 부분은 가장 힘듭니다. 모든 Y 개월 중 N 번째 X에서 발생하는 이벤트를 지원할 수 있어야합니다. 여기서 X는 주어진 요일이고 Y는 몇 개월입니다.
나는 이미 "매 Y 개월마다"(아래의 쿼리 세그먼트에서 두 번째 줄부터 마지막 부분까지) 부분을 파악했습니다. 나는 단지 "N 번째 평일"을 얻을 필요가있다.
누군가가 작성한 PHP 스크립트가 멋지게 해결되었다는 것을 알았고 사용 계획을 세웠지 만 MySQL 쿼리에서 전체적으로 수행해야한다는 것을 깨달았습니다. db 레코드의 일부이므로 기본 쿼리 외부에서 사용할 수 없습니다. 여기
그래서 당신은 내가이 향하고있어 곳의 아이디어를 얻을 수있는 쿼리의 일부입니다 :WHEN event_recurring_pattern_type = 'monthly' AND event_recurring_monthly_type = 'dayxofeveryxmonths' THEN
MOD(PERIOD_DIFF(CONCAT(event_date_year,event_date_month), CONCAT('$date_year','$date_month')), event_recurring_monthly_dayofeveryxmonths) = 0
AND event_recurring_monthly_dayx = '$date_day'
WHEN event_recurring_pattern_type = 'monthly' AND event_recurring_monthly_type = 'thexweekdayofeveryxmonths' THEN
MOD(PERIOD_DIFF(CONCAT(event_date_year,event_date_month), CONCAT('$date_year','$date_month')), event_recurring_monthly_dayofeveryxmonths) = 0
AND '$date_timestamp' = {the date of the Nth weekday of $date_month}
이 달력을 빌드로 (달력의 전류 출력 날짜가 비교해야 마지막 줄 하나 하루에 한 번씩) 출력 과정에서 우리가있는 달의 N 번째 평일의 날짜로 대체합니다. 이벤트가 일치하면 해당 이벤트가 캘린더에 출력됩니다.
$ date_timestamp는이 경우 'YYYY-MM-DD'형식의 현재 출력 날짜이므로, 날짜가 지정된 N 번째 요일도 해당 형식이어야합니다.
충분한 정보를 제공하지 못했거나 다른 곳에서 적절히 답변 한 적이 있다면 알려주십시오. 내 질문과 관련된 많은 정보를 제공했지만 여전히 내 문제를 해결할 수있는 완벽한 대답을 얻었음에도 불구하고 일부 사람들이 너무 모호하거나 정보가 충분하지 않다고 생각하여 내 이전 질문 중 하나가 "닫혔습니다." 부정적인 행동을 취하기 전에 필요한 경우 질문을 향상시킬 수있는 기회를주십시오.
미리 감사드립니다.
오 그래, 선택적으로 지정된 월의 지정된 요일을 얻으려면 추가로 만들 수 있다면 더 좋을 것입니다. PHP 스크립트는 그렇게했지만, 내가 말했듯이, 이번에는 PHP로 할 수 없다.
나는 이것이 어떻게 도움이되는지, 심지어 어떻게 구현할지 모릅니다. 예를 들어 줄 수 있습니까? – vertigoelectric