Interrogez une table SQL pour les dates qui commencent/se terminent dans une plage et les dates qui se situent dans la plage mais commencent avant/après la plage
P粉147747637
P粉147747637 2023-07-21 10:17:02
0
1
664

Aperçu :

J'ai une table de base de données SQL où chaque ligne (événement) contient une date de début et de fin formatée sous forme d'horodatage.

Objectif :

Affiche les événements d'une semaine donnée, ceux-ci incluent les événements qui commencent et se terminent au cours de cette semaine, mais peuvent également avoir lieu au cours de cette semaine (leurs dates de début/fin peuvent être au cours de cette semaine, ou ils peuvent commencer et se terminer avant cette semaine) se termine après cette semaine). Exemple de résultat attendu :

  • Pour une semaine donnée du 16 juillet au 22 juillet, les résultats incluront les événements suivants :
    • Événements commençant et se terminant le 16 juillet, le 19 juillet ou le 22 juillet.
    • Événement commençant le 10 juillet et se terminant le 19 juillet.
    • Événement commençant le 19 juillet et se terminant le 26 juillet.
    • Événement commençant le 4 juillet et se terminant le 30 juillet.

J'ai essayé d'utiliser une requête BETWEEN et une requête utilisant start > {$week_start} AND end <

Question : Est-il possible d'écrire une seule requête qui couvre tous ces cas ?

BTW, s'il existe une meilleure solution, je suis d'accord avec l'utilisation d'un format de date autre que l'horodatage.

P粉147747637
P粉147747637

répondre à tous(1)
P粉222320176

La logique que vous recherchez est :

start <= {$week_end} ET fin >= {$week_start}

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal