> 데이터 베이스 > MySQL 튜토리얼 > 다음 14일 동안 기념일이 있는 이벤트를 찾는 방법(연도 무시)

다음 14일 동안 기념일이 있는 이벤트를 찾는 방법(연도 무시)

Mary-Kate Olsen
풀어 주다: 2025-01-02 21:11:39
원래의
782명이 탐색했습니다.

How to Find Events with Anniversaries in the Next 14 Days (Ignoring the Year)?

연도를 무시하고 날짜 연산을 수행하는 방법

다음 14일 이내에 기념일이 있는 날짜를 선택하는 작업입니다. 계산으로부터의 연도.

예 쿼리

접근법 1: 일련의 기념일 생성

WITH anniversaries AS (
  SELECT event_id, event_date,
         (event_date + (n || ' years')::interval)::date AS anniversary
  FROM   event, generate_series(13, 113) n
)
SELECT event_id, event_date
FROM   anniversaries
WHERE  anniversary BETWEEN current_date AND current_date + interval '14' day;
로그인 후 복사

접근법 2: 기념일 계산

SELECT event_id, event_date
FROM   event
WHERE  extract(month FROM age(current_date + 14, event_date))  = 0
AND    extract(day   FROM age(current_date + 14, event_date)) <= 14;
로그인 후 복사

접근 방법 3: 기능

CREATE OR REPLACE FUNCTION this_years_birthday(_dut date)
  RETURNS date
  LANGUAGE sql AS
$func$
SELECT (date_trunc('year', now()) + ( - date_trunc('year', )))::date
$func$;

SELECT *
FROM   event e
WHERE  this_years_birthday(event_date) BETWEEN current_date
                                             AND (current_date + 14);
로그인 후 복사

참고:

  • 쿼리 결과는 동일합니다.
  • 쿼리 성능은 데이터의 크기와 분포에 따라 달라집니다.

위 내용은 다음 14일 동안 기념일이 있는 이벤트를 찾는 방법(연도 무시)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿