Page 1 sur 1

comparer dates

Posté : 28 avr. 2009, 11:21
par pacific
Salut a tous, dans une table j'ai un champ date en varchar, l'utilisateur entre dans un input la date au format jj/mm/aaaa, je souhaite faire une requete pour avoir tous les enregistrement dont la date est superieur a celle du jour :

$date=date("d/m/Y");
SELECT * FROM agenda WHERE date>'$date';

mais ca compare en tant que nombre (et que le debut cad le jour)

yaurai t-il un moyen sur ce cas de figure de comparer en tant que dates

Merci d'avance

Posté : 28 avr. 2009, 11:34
par Nagol
je pense que ton format de date n'est pas bon

date('Y-m-d') et pas date("d/m/Y");

comparer dates

Posté : 28 avr. 2009, 12:32
par pacific
Merci pour ta réponse, ben j'ai volontairement mi date("d/m/Y") pour que ca coincide lors de la comparaison avec le format jj/mm/aaaa de l'utilisateur, mais en testant Y-m-d je vois que rien ne change ...

Posté : 28 avr. 2009, 12:55
par D4Y
Vérifier la manière dont est affiché un "echo $agenda['date']" de la récupération de la date dans ta base donnée. Tu auras comme ça avec certitude , le format dans laquel tu dois introduire la tienne.

En principe : YYYY-mm-dd

Posté : 28 avr. 2009, 12:56
par Kemper
Pourquoi se casser la tête avec un varchar déjà ? Pour comparer des dates y'a un type de colonne date, avec un format normé (AAAA-MM-JJ comme indiqué dans les autres réponses) qui facilite les tris, et des fonctions qui vont bien.

Ensuite tu reformates à l'affichage et l'enregistrement, c'est pas long.

Avec une date bien stockée ta requête serait ça :

Code : Tout sélectionner

SELECT * FROM agenda WHERE date > NOW();
Là forcément, comparer une chaîne avec des slashes dedans, ça va être plus compliqué.

Il y a un sujet dans la FAQ pour manipuler des dates : http://www.phpfrance.com/forums/voir_sujet-8323.php

comparer dates

Posté : 28 avr. 2009, 13:21
par pacific
j'ai fais l'echo les dates sont au meme format, en ce qui concerne le champs date c'est ce que j'ai fais au début mais comme l'utilisateur entre une date a partir d'un input lorsque je met un champ de type date jai 0000-00-00 ou Null

comparer dates

Posté : 28 avr. 2009, 13:24
par pacific
Ah pardon, j'avai pas lu "reformatage a l'enregistrement" ok je vais trouver ca ... Merci bocou

Posté : 28 avr. 2009, 15:09
par Ryle
Le forum FAQ contient des explications détaillées sur ce sujet :
:arrow: Quelques petites manipulations avec les dates (PHP/MySQL) ;)