Recherche de plages de dates qui se chevauchent dans PostgreSQL
Vous avez fourni une requête qui tente de trouver tous les joueurs qui faisaient partie d'une équipe spécifique dans une année donnée, mais cela ne fonctionne pas correctement. Résolvons les problèmes auxquels vous êtes confrontés et proposons une solution alternative pour rechercher des plages de dates qui se chevauchent.
Problèmes avec la requête d'origine :
Requête correcte :
Pour trouver tous les joueurs d'une équipe donnée qui ont rejoint avant 2010 et ne sont pas partis avant 2009, vous pouvez utiliser la requête suivante :
1 2 3 4 5 6 7 |
|
Supplémentaire Considérations :
1 |
|
Utilisation de l'opérateur OVERLAPS :
PostgreSQL fournit également l'opérateur OVERLAPS, qui peut être utilisé pour rechercher des plages qui se chevauchent. La requête suivante utilise OVERLAPS pour rechercher les joueurs qui chevauchaient la plage « 2009-01-01 », « 2010-01-01 » :
1 2 3 4 5 |
|
Utilisation d'un type de plage :
Dans PostgreSQL 9.2 ou version ultérieure, vous pouvez utiliser un type de plage pour représenter des plages de dates. Cela offre de meilleures performances et permet une prise en charge plus facile des index.
1 2 3 4 5 6 7 8 9 |
|
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!