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;
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;
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);
Hinweis:
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!