Maison > base de données > tutoriel mysql > Pourquoi ma requête de plage de dates SQLite utilisant BETWEEN renvoie-t-elle toutes les dates ?

Pourquoi ma requête de plage de dates SQLite utilisant BETWEEN renvoie-t-elle toutes les dates ?

Barbara Streisand
Libérer: 2025-01-13 11:17:43
original
790 Les gens l'ont consulté

Why Does My SQLite Date Range Query Using BETWEEN Return All Dates?

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 :

  1. 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.

  2. 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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal