Heim > Datenbank > MySQL-Tutorial > Wie finde ich Ereignisse mit Jahrestagen in den nächsten 14 Tagen (ohne Berücksichtigung des Jahres)?

Wie finde ich Ereignisse mit Jahrestagen in den nächsten 14 Tagen (ohne Berücksichtigung des Jahres)?

Mary-Kate Olsen
Freigeben: 2025-01-02 21:11:39
Original
782 Leute haben es durchsucht

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

Wie man Datumsrechnungen durchführt und dabei das Jahr ignoriert

Die Aufgabe besteht darin, Daten auszuwählen, die innerhalb der nächsten 14 Tage einen Jahrestag haben, mit Ausnahme des Jahres Jahr ab der Berechnung.

Beispiel Abfragen

Ansatz 1: Serie von Jahrestagen generieren

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;
Nach dem Login kopieren

Ansatz 2: Jahrestage berechnen

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;
Nach dem Login kopieren

Ansatz 3: Verwendung von a Funktion

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);
Nach dem Login kopieren

Hinweis:

  • Die Ergebnisse der Abfragen sind gleichwertig.
  • Die Leistung der Abfragen kann variieren je nach Größe und Verteilung der Daten.

Das obige ist der detaillierte Inhalt vonWie finde ich Ereignisse mit Jahrestagen in den nächsten 14 Tagen (ohne Berücksichtigung des Jahres)?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage