Discussion:
2008-11-17 00:00:00 .....
(trop ancien pour répondre)
samuel
2009-06-30 12:50:45 UTC
Permalink
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..
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!
Olivier Miakinen
2009-06-30 12:56:22 UTC
Permalink
Bonjour,
Post by samuel
encore ce format de timestamp qui m'embete...
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>.
samuel
2009-06-30 14:25:53 UTC
Permalink
Post by Olivier Miakinen
Bonjour,
Post by samuel
encore ce format de timestamp qui m'embete...
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)
Olivier Miakinen
2009-06-30 14:37:03 UTC
Permalink
Post by samuel
oui ms pb, cest la base de données, quand je lui donne un timestamp,
elle enregistre un 2008-11-17 00:00:00...
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.
Post by samuel
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
Aurelgadjo
2009-06-30 19:09:58 UTC
Permalink
Post by Olivier Miakinen
Post by samuel
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.
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 :)
Xavier Nayrac
2009-06-30 19:09:58 UTC
Permalink
Post by samuel
pas, pas plus que " WHERE 2006-11-17 00:00:0< date "... (numéros au
Avec des guillemets peut-être ?

WHERE date > '2006-11-17'
--
Xavier Nayrac
http://personalbugtracker.free.fr
Mickael Wolff
2009-06-30 21:32:09 UTC
Permalink
Post by samuel
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/>
Continuer la lecture sur narkive:
Loading...