Je suppose que vous voulez le nombre d'éléments pour lesquels une partie de la période In time
à Out time
correspond à votre période de recherche ou chevauche celle-ci. D'abord, examinons de façon exhaustive ce que signifie un "chevauchement" dans les dates. Un chevauchement est l'une des conditions suivantes:
Start1 End1
---------------------------------------------------------------------------------
Start2 End2
Start2 End2
Start2 End2
Et n'est pas l'une des conditions suivantes:
Start1 End1
---------------------------------------------------------------------------------
Start2 End2
Start2 End2
Si vous regardez attentivement, vous remarquerez Start2 < End1 AND End2 > Start1
définit cette relation, donc cela deviendra votre clause WHERE
.
Par conséquent, vous devriez essayer ce qui suit:
SELECT COUNT(*)
FROM myTable
WHERE '2012-02-02 10:00:00' <= `Out Time`
AND '2012-02-02 11:00:00' >= `In Time`
Référence du livre: Richard T. Snodgrass. Développement d'applications orientées temps dans SQL. Morgan-Kaufmann, 1999. –
Merci pour votre commentaire – DEVEX