|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : avril 2004 Messages : 19 ![]() |
J'ai une table Article où je stocke la date de chaque article (champ article_time) avec un timestamp.
Je voudrais sur un site afficher tous les articles d'un mois et d'une année donnée (ex: les articles de Fevrier 2006). Avec un timestamp, je ne vois pas comment m'y prendre. Le mieux est-il d'avoir deux champs Date et Heure? |
|
|
00
|
|
|
#2 |
![]() ![]() Nicolas ValléeIngénieur Système Inscription : décembre 2005 Messages : 9 771 ![]() |
c'est plutôt un problème sql...
Code :
SELECT * FROM Article WHERE article_time LIKE '2004-12%' |
|
|
00
|
|
|
#3 | |
|
Membre habitué
![]() |
Citation:
__________________
On ne peut empêcher les vagues, mais on peut apprendre à les surfer... http://blog.plopix.net http://www.ez-france.org |
|
|
|
00
|
|
|
#4 | |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Citation:
Tu peux par exemple calculer le timestamp de l'année dont tu as besoin (une fourchette : timestamp mini et timestamp maxi) et faire un BETWEEN. Je parle de timestamp mais dans la BDD, c'est bien un int(10) ?
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : avril 2004 Messages : 19 ![]() |
c'est bien un int(10) dans ma bdd
|
|
|
00
|
|
|
#6 | |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Citation:
As-tu essayé ce que je t'ai proposé ? Qu'est-ce que cela a donné ? Si tu veux les articles de février, calcule en PHP le timestamp du 1 février et celui du 1 mars puis fais ta requête sur un BETWEEN de ces deux valeurs.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
|
00
|
|
|
#7 | ||
|
Membre émérite
![]() Inscription : février 2006 Messages : 840 ![]() |
Je penche davantage pour un champs au format datetime.
ici on ne demande pas de faire des calculs sur la date mais seulement un select sur des tupples. Une requête bien formatée peut se prévaloir de ce souhait. En outre le champs de type timestamp à un gros défaut selon moi, il se mets à jour tout seul dans un update. Ce qui pour conserver la date d'enregistrement d'un article pose problème, à moins de spécifier dans la requête que ce champs doit être égal à lui-même : Code :
Un champs de type timestamp ne devrait être utilisé que pour connaitre la date de la dernière modification d'un tupple, et non pour stocker une date d'enregistrement. Sinon le language SQL est assez riche de fonction (pour la plupart méconnues) qui permettent de faire des calculs sur les dates directement dans la requête.
__________________
Consultant idéaliste. |
||
|
|
00
|
|
|
#8 | ||
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Citation:
Je n'ai jamais vu de champ qui se mette à jour tout seul dans une table sans que je l'aie voulu. J'ai peut-être mal compris de quoi tu parles : peux-tu être plus spécifique, s'il-te-plaît ? Et nous ne parlons pas de champ de type timestamp mais plutôt de variable timestamp enregistrée dans un champ int Citation:
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
||
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() Inscription : avril 2004 Messages : 19 ![]() |
J'ai essayé la solution avec un BETWEEN entre le 1er du mois et le 1er du mois suivant, ca marche bien. Merci de votre aide
|
|
|
00
|
|
|
#10 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Euh, fais juste attention à un truc que je n'ai pas vérifié en te conseillant le BETWEEN : inclut-il ou bien exclut-il les dates indiquées ?
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com