Union d'intervalles de dates

pierre42
Invité n'ayant pas de compte PHPfrance

26 nov. 2012, 20:57

Bonjour,

J'ai une table avec (en gros) 3 champs : un Id, un champ DateDebut et un champ DateFin.

ça me fait donc une liste d'intervalles de dates différents.

comment puis-je faire pour obtenir l'union ou l'intersection de ces intervalles (ou d'une partie) en SQL ?

je ne trouve rien dans les fonctions de dates qui gère ça.

(j'utilise SQL Server 2008).

Merci d'avance,

ViPHP
AB
ViPHP | 5818 Messages

27 nov. 2012, 00:11

Donnes-vous un exemple concret de ce que tu veux faire.

pierre42
Invité n'ayant pas de compte PHPfrance

27 nov. 2012, 11:28

Je vous donne un exemple.

Prenons comme données (id, date1, date2) :

1, 03/05/2005, 12/11/2005
2, 04/08/2005, 02/05/2006
3, 23/04/2006, 30/03/2007
4, 24/07/2007, 17/02/2008
5, 23/06/2008, 31/12/2008

l'union pour id <= 3 donne 03/05/2005, 30/03/2007
l'union pour id in (3, 4) donne 23/04/2006, 30/03/2007 et 24/07/2007, 17/02/2008

l'intersection pour id <= 2 donne 04/08/2005, 12/11/2005
l'intersection pour id >= 3 donne NULL