Comment puis-je obtenir toutes les lignes où l'utilisateur était présent pendant au moins 1 jour en mars 2019 (du 1er au 31 mars 2019). Ce 1 jour peut être soit dans la date de début, soit dans la date de fin ou les deux.
Tableau
| userid | startdate | enddate |. postid
| ------- | --------- | ------ | -----
| u1 | 01-01-2019 | 03-05-2019. | s1
| u1 | 03-06-2019 | 03-22-2019. |. s1
| u1 | 03-23-2019 | 05-20-2019. | s3
| u2 | 03-01-2019 | 12-31-2099. |. s1
| u3 | 01-01-2019 | 04-20-2019. | s2
| u4 | 01-04-2013 | 08-22-2020. | s3
| u4 | 05-20-2020 | 12-31-2099. | s3
Résultat attendu:
| userid | startdate | enddate |. postid
| ------- | --------- | ------ | -----
| u1 | 01-01-2019 | 03-05-2019. | s1
| u1 | 03-06-2019 | 03-22-2019. |. s1
| u1 | 03-23-2019 | 05-20-2019. | s3
| u2 | 03-01-2019 | 12-31-2099. |. s1
| u3 | 01-01-2019 | 04-20-2019. | s2
| u4 | 01-04-2013 | 08-22-2020. | s3
Vous pouvez vérifier les chevauchements entre les périodes stockées et le mois de mars 2019 comme ceci :
select t.*
from mytable t
where end_date >= '2019-03-01' and start_date <= '2019-03-31'
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots