Comment effectuer des calculs de dates en ignorant l'année
La tâche consiste à sélectionner les dates qui ont un anniversaire dans les 14 prochains jours, à l'exclusion du année à partir du calcul.
Exemple Requêtes
Approche 1 : Générer des séries d'anniversaires
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;
Approche 2 : Calculer les anniversaires
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;
Approche 3 : Utiliser un Fonction
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);
Remarque :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!