Dépannage des requêtes de plage de dates SQLite
Un problème de requête SQLite courant implique l'utilisation de l'opérateur BETWEEN
avec des dates au format "MM/JJ/AAAA", renvoyant de manière inattendue toutes les dates au lieu de la plage souhaitée.
Le problème : formatage de date incorrect
SQLite exige que les dates soient au format "AAAA-MM-JJ". Si votre base de données ou requête utilise un format différent (comme « MM/JJ/AAAA »), SQLite traite les dates comme des chaînes, conduisant à des résultats incorrects, sélectionnant souvent chaque date du tableau.
La solution : un formatage de date cohérent
La solution est simple : assurez-vous d'un formatage "AAAA-MM-JJ" cohérent pour toutes les dates. Vous pouvez y parvenir de deux manières :
Modification de la base de données : Utilisez la fonction strftime('%Y-%m-%d', date_column)
pour mettre à jour la colonne de votre base de données au format correct.
Modification de la requête : Modifiez votre requête SQL pour utiliser directement le format correct. Par exemple :
<code class="language-sql">SELECT * FROM test WHERE date BETWEEN '2011-11-01' AND '2011-11-08';</code>
En utilisant le format de date correct, votre clause BETWEEN
fonctionnera comme prévu, en sélectionnant avec précision uniquement les dates comprises dans la plage spécifiée.
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!