2008-11-17 00:00:00 .....

Le
samuel
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!
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Olivier Miakinen
Le #19669231
Bonjour,

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 :
samuel
Le #19670051
On 30 juin, 14:56, Olivier Miakinen
Bonjour,

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 :


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
Le #19670041
Le 30/06/2009 16:25, samuel a écrit :

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.

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
Olivier Miakinen
Le #21917011
Le 30/06/2009 16:25, samuel a écrit :

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.

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
Sylvain SF
Le #21917001
Olivier Miakinen a écrit :
Le 30/06/2009 16:25, samuel a écrit :
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.



en l'occurence c'est par defaut une string 'YYYY-MM-DD HH:MM:SS',
on peut obtenir la valeur numérique stockée (c'est bien un nombre
qui est stocké) par SELECT (myTimeStamp+0)

du coup je peux le comparer à quoi ? " WHERE 12I5536< date " ne marche
pas, pas plus que " WHERE 2006-11-17 00:00:0< date "...





"12I5536" ne marche pas ? c'est normal c'est un mix invalide.
2006-11-17 00:00:0 (*sans quote*) ne marche pas, c'est normal
c'est également une syntax error.

vos devriez lire les erreurs, au lieu de considérer que "ça marche pas"
cela vous montrerait que vos erreurs de syntaxes sont le problème.

sinon, "where t<20090630173100" marche très bien,
"where t<'2009-06-30 17:30:00'" marche très bien.

Sylvain.
Xavier Nayrac
Le #19671421
> 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
Aurelgadjo
Le #19671431
Olivier Miakinen a écrit :
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 :)
Aurelgadjo
Le #21916991
Olivier Miakinen a écrit :
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 :)
Mickael Wolff
Le #19672601
samuel a écrit :

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
Publicité
Poster une réponse
Anonyme