SQl : travailler avec des datetime
Résolu
le_joker_fou
Messages postés
765
Date d'inscription
Statut
Membre
Dernière intervention
-
le_joker_fou Messages postés 765 Date d'inscription Statut Membre Dernière intervention -
le_joker_fou Messages postés 765 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je deviens fou, quand je fais la requêtes suivante :
Ça me retourne mes enregistrements.
Mais quand je fais :
Ça me retourne rien alors qu'en base j'ai des enregistrements.
Quelqu'un a-t-il une explication sur le problème?
Merci.
Je deviens fou, quand je fais la requêtes suivante :
SELECT * FROM ma_table WHERE 'date'>='2012-01-28 00:00:00'
Ça me retourne mes enregistrements.
Mais quand je fais :
SELECT * FROM ma_table WHERE 'date'<='2012-01-28 23:59:59'
Ça me retourne rien alors qu'en base j'ai des enregistrements.
Quelqu'un a-t-il une explication sur le problème?
Merci.
A voir également:
- SQl : travailler avec des datetime
- Logiciel sql - Télécharger - Bases de données
- Requete sql pix - Forum PHP
- Additions et multiplication dans des requêtes SQL ✓ - Forum MySQL
- Sql query download - Télécharger - Gestion de données
- Ora-00933: la commande sql ne se termine pas correctement ✓ - Forum Oracle
2 réponses
Bonjour
Si tu as mis 'date' entre apostrophes, c'est normal : 'date' est un texte qui commence par une lettre, et qui est donc plus grand que '2012-01-28 00:00:00' qui commence par un chiffre.
Je parie que ta première requête te rend TOUS tes enregistrements.
Écris tes requêtes sans apostrophes autour de 'date' si c'est le nom de ton champ :
Si tu as mis 'date' entre apostrophes, c'est normal : 'date' est un texte qui commence par une lettre, et qui est donc plus grand que '2012-01-28 00:00:00' qui commence par un chiffre.
Je parie que ta première requête te rend TOUS tes enregistrements.
Écris tes requêtes sans apostrophes autour de 'date' si c'est le nom de ton champ :
SELECT * FROM ma_table WHERE date<='2012-01-28 23:59:59'
Bonjour,
En fait je mets date entre les quotes du 7 (') car sinon il me prends date comme un mot SQL (comme WHERE, SELECT, UPDATE, etc...).
Enfin, j'avais oublié que MySQL gère mal les dates sur plusieurs années, étant en 2013 ça veut donc dire qu'il doit revenir de 2013 à 2012 et ça il n'aime pas, j'avais déjà eu le coup une fois.
Merci de ton aide.
En fait je mets date entre les quotes du 7 (') car sinon il me prends date comme un mot SQL (comme WHERE, SELECT, UPDATE, etc...).
Enfin, j'avais oublié que MySQL gère mal les dates sur plusieurs années, étant en 2013 ça veut donc dire qu'il doit revenir de 2013 à 2012 et ça il n'aime pas, j'avais déjà eu le coup une fois.
Merci de ton aide.
Heureux que ton problème soit résolu, mais tes réponses m'étonnent.
'date' fait justement partie des exceptions qu'on peut utiliser sans les quotes de 7 dans mysql, comme ACTION, BIT, ENUM et quelques autres, contrairement à ASC, DESC,... qui eux doivent bien être obligatoirement entre quotes. Je viens de refaire l'essai pour m'en assurer.
Quant à mysql qui gère mal les dates sur plusieurs années, c'est de la pure fantaisie : il les gère très bien, il n'y a aucun doute là-dessus.
'date' fait justement partie des exceptions qu'on peut utiliser sans les quotes de 7 dans mysql, comme ACTION, BIT, ENUM et quelques autres, contrairement à ASC, DESC,... qui eux doivent bien être obligatoirement entre quotes. Je viens de refaire l'essai pour m'en assurer.
Quant à mysql qui gère mal les dates sur plusieurs années, c'est de la pure fantaisie : il les gère très bien, il n'y a aucun doute là-dessus.