bon, �a j'ai pu me d�brouiller, mais par contre, dans ma requete sql
je sais pas quoi comparer � �a..
je peux pas comparer le vrai timestamps, �a marche pas; et ac qque
chose du type 2008-11-17 00:00:00 �a marche pas non plus....
que faire? :s
merci d'avance!
Le 30/06/2009 14:50, samuel a ᅵcrit :
> encore ce format de timestamp qui m'embete...
> quand je veux rᅵcuperer la date, il me sort qque chose du type:
> 2008-11-17 00:00:00
>
> bon, ᅵa j'ai pu me dᅵbrouiller, mais par contre, dans ma requete sql
> je sais pas quoi comparer ᅵ ᅵa..
Partant d'un timestamp unix, tu peux obtenir le format que tu veux avec
la fonction date : <http://fr3.php.net/manual/fr/function.date.php>.
oui ms pb, cest la base de donn�es, quand je lui donne un timestamp,
elle enregistre un 2008-11-17 00:00:00...
du coup je peux le comparer � quoi ? " WHERE 12I5536< date " ne marche
pas, pas plus que " WHERE 2006-11-17 00:00:0< date "... (num�ros au
pif)
Non. Je ne suis pas un pro en bases de donnᅵes, mais le peu que j'ai lu
de la doc MySQL m'a convaincu que, si tu as dᅵfini un type TIMESTAMP, la
date est stockᅵe sous la forme d'un entier, et que c'est ᅵ la lecture
que tu peux demander ᅵ la recevoir dans le format que *tu* veux, selon
une syntaxe que je n'ai pas cherchᅵ ᅵ retenir.
> du coup je peux le comparer ᅵ quoi ? " WHERE 12I5536< date " ne marche
> pas, pas plus que " WHERE 2006-11-17 00:00:0< date "... (numᅵros au
> pif)
Eh bien lis donc la doc de ta base de donnᅵes quelle qu'elle soit
(MySQL si c'est le cas mais tu ne l'as pas prᅵcisᅵ), puis si tu as
encore des questions tu pourras les poser sur le forum consacrᅵ aux
bases de donnᅵes, fr.comp.applications.sgbd, vers oᅵ je fais suivre
la discussion.
Cordialement,
--
Olivier Miakinen
Avec des guillemets peut-�tre ?
WHERE date > '2006-11-17'
--
Xavier Nayrac
http://personalbugtracker.free.fr
Au dᅵbut quand j'ai commencᅵ php/mysql je stockais mes timestamp dans
des INT. comme ᅵa pas de soucis du genre.
Mais vu qu'il y a des choses de prᅵvues par MySQL ᅵ ce niveau, autant
les utiliser.
J'utilise donc les time "date" et "datetime". Et quand tu veux rᅵcupᅵrer
un timestamp, il y a la fonction (sql ? mysql ?) UNIX_TIMESTAMP.
Comme le dit la doc :
mysql> SELECT UNIX_TIMESTAMP();
-> 882226357
mysql> SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00');
-> 875996580
( http://dev.mysql.com/doc/refman/5.0/fr/date-and-time-functions.html )
ps : dᅵsolᅵ pour le crosspost repositionnᅵ mais au moins la rᅵponse sera
dans le forum oᅵ a ᅵtᅵ posᅵe la question... Et je laisse le suivi pour
le cas oᅵ des avis plus ᅵclairᅵs auraient des critiques ᅵ faire :)
> 2008-11-17 00:00:00
>
> bon, �a j'ai pu me d�brouiller, mais par contre, dans ma requete sql
> je sais pas quoi comparer � �a..
Ce format permet d'utiliser les capacit�s de comparaison des cha�nes.
Tu as la garantie que l'ordre sera correctement pris en compte, de l'an
0 � 9999 (contra�rement au timestamp).
Mais attention, si tu ne souhaites que stocker la date pour un
enregistrement, il faut utiliser un champ de type date. Ici tu as
choisis un datetime.
create table dummy ( d date, dt datetime) ;
select * from dummy where d = '2009-10-12' ;
select * from dummy where date(dt) = '2009-10-12' ;
select * from dummy where d between '2009-01-12' and date(now()) ;
J'ai d�j� vu la chose suivante :
select * from dummy where dt like '2009-10-12%' ;
C'est une ignominie qui en plus d'�tre inefficace n'exploite pas la
s�mantique des requ�te SQL.
--
Micka�l Wolff aka Lupus Michaelis
http://lupusmic.org
Seeking for a position <http://lupusmic.org/pro/>