Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQLite Discussion :

Requête "Entre telle date & telle date"


Sujet :

SQLite

  1. #1
    Membre à l'essai
    Requête "Entre telle date & telle date"
    Bonjour,
    Je reviens avec toujours la même BDD (restaurant qui gère des commandes) que les 2 dernières discussions.
    J'ai donc Commande avec les dates des commandes des 3 derniers mois sous la forme YYYY-MM-DD ainsi que Commande_ID.
    J'aimerais tout simplement obtenir à l'aide d'une requête toutes les commandes du mois dernier.
    J'ai essayé avec:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    SELECT * FROM Commande WHERE DateRec BETWEEN 2020-05-01 AND 2020-05-31

    Sauf que la requête ne renvoie rien.
    Est-ce qu'il me manque quelquechose?
    Et si vous avez aussi un moyen d'obtenir les commandes des 30 derniers jours (ex: entre 2020-05-20 & 2020-06-20) j'apprécierais cela grandement.
    Merci

  2. #2
    Membre chevronné
    Peut-être ceci ?
    Je n'ai pas de SQLite sous la main ...

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    SELECT * FROM Commande WHERE strftime('%Y-%m-%d', DateRec) BETWEEN '2020-05-01' AND '2020-05-31'
    Il ne pleut jamais en Moselle !

  3. #3
    Membre éclairé
    Bonjour,

    Si tu utilises des dates au format ISO, il te faut mettre tes dates entre quotes pour indiquer des chaînes de caractères...

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    SELECT * FROM Commande WHERE DateRec BETWEEN '2020-05-01' AND '2020-05-31'


    C'était déjà dit dans ma réponse à ta demande https://www.developpez.net/forums/d2084469/bases-donnees/autres-sgbd/sqlite/table-date/?

    Cordialement

  4. #4
    Expert éminent sénior
    Citation Envoyé par vttman Voir le message
    Je n'ai pas de SQLite sous la main ...
    Bien pratique pour tester différents SGBDR et différentes versions : https://dbfiddle.uk/

  5. #5
    Rédacteur

    Citation Envoyé par DienF Voir le message
    Bonjour,
    ...
    J'ai essayé avec:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    SELECT * FROM Commande WHERE DateRec BETWEEN 2020-05-01 AND 2020-05-31

    Sauf que la requête ne renvoie rien
    ....
    Arithmétique...
    2020-5-1 = 2014
    2020-5-31 = 1984

    Donc votre requête peut être simplifié en :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    SELECT * FROM Commande WHERE DateRec BETWEEN 2014 AND 1984


    Comme vous utilisez sans aucun doute un SGBD de merde qui confond des dates et des nombres, il ne bronche pas (tout autre SGBDR bien ficelé aurait renvoyé une erreur du genre type incompatible) et comme 2014 est supérieur à 1984, alors vous n'aurez jamais aucune ligne !

    SQL est un langage typé, même si certains SGBD de très mauvaise qualité l'ignore !

    A +
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  6. #6
    Membre chevronné
    Citation Envoyé par escartefigue Voir le message
    Bien pratique pour tester différents SGBDR et différentes versions : https://dbfiddle.uk/
    Impec
    Il ne pleut jamais en Moselle !