Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
5055 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Selection selon un intervalle de dates

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Selection selon un intervalle de dates

n°714281
ptibat
Posté le 03-05-2004 à 14:54:27  profilanswer
 

Bonjour à tous,
 
Je cherche à réccupéré des champs contenu dans une base de données PostgreSQL dans un intervalle de dates.
 
Schéma de la base :
 

heure   timestamp without time zone
anomalie  text


 
Voici ce que j'affiche à l'écran :
 

2004-04-09 12:21:03   TEST01
2004-04-09 12:25:19  ERROR 404
2004-04-09 12:26:59  ERROR 505
2004-04-09 12:27:20  mise a jour de la base de donnees
2004-04-09 12:27:41  Shutdown
2004-05-03 14:08:54  apt-get
2004-05-03 14:23:32  TEST


 
 
Je voudrai savoir comment récuppéré les messages contenu dans un intervalle que je défini...
 
 
Merci :jap:


Message édité par ptibat le 03-05-2004 à 14:55:22

---------------
flick r
mood
Publicité
Posté le 03-05-2004 à 14:54:27  profilanswer
 

n°714320
Sebastien
Posté le 03-05-2004 à 15:10:37  profilanswer
 

Tu peux pas le faire directement dans ta requete ?
Tu choisis une plage de date bien precise.

n°714322
dropsy
et bonne chance surtout...
Posté le 03-05-2004 à 15:11:28  profilanswer
 

le rapport avec php?
si c'est stocké dans une bd, il faut que tu modifie ta requête SQL plutôt [:proy]

n°714333
ptibat
Posté le 03-05-2004 à 15:17:34  profilanswer
 

En fait j'ai fait 2 comboBox dans un formulaire (pour un test) et lorsque je click sur OK voici ce que
 
 

Code :
  1. <?
  2. if (($_POST['date_debut']!='') && ($_POST['date_fin']!=''))
  3. {
  4.    echo $_POST['date_debut'];
  5. }
  6. ?>
  7. <?
  8. echo "<form name='cherche_anomalies' method='post' action=$PHP_SELF>";
  9. $search = "SELECT heure FROM anomalies_restauration";
  10. $affiche_tableau = pg_exec($search);
  11. echo "<select name='date_debut'>";
  12. while($tableau = pg_fetch_array($affiche_tableau))
  13.  {
  14.   $heure = $tableau['heure'];
  15.   echo "<option value=$heure>$heure";
  16.  }
  17. echo "</select>&nbsp;";
  18. $search = "SELECT heure FROM anomalies_restauration";
  19. $affiche_tableau = pg_exec($search);
  20. echo "<select name='date_fin'>";
  21. while($tableau = pg_fetch_array($affiche_tableau))
  22.  {
  23.   $heure = $tableau['heure'];
  24.   echo "<option value=$heure>$heure";
  25.  }
  26. echo "</select>&nbsp;<input type='submit' value='OK'></form>";
  27. ?>


 
      echo $_POST['date_debut'];  DONNE :  
 

2004-05-03


et non 2004-05-03 14:23:32   :pt1cable:


Message édité par ptibat le 03-05-2004 à 15:18:29

---------------
flick r
n°714377
Sebastien
Posté le 03-05-2004 à 15:55:33  profilanswer
 

Change
 echo "<option value=$heure>$heure";  
par
 echo "<option value='$heure'>$heure";

n°714389
ptibat
Posté le 03-05-2004 à 16:05:46  profilanswer
 

Sebastien a écrit :

Change
 echo "<option value=$heure>$heure";  
par
 echo "<option value='$heure'>$heure";


 
Impec, j'ai bien le résultat avec ce format 2004-04-09 12:21:03.  :hello:   :jap:  
 
 
Comment puis-je selectionner les champs qui correspondent à l'intervalle choisit ?


Message édité par ptibat le 03-05-2004 à 16:05:56

---------------
flick r
n°714405
Sebastien
Posté le 03-05-2004 à 16:16:06  profilanswer
 

Ton code est quand meme à revoir je pense.
Je verais plus les choses comme ca :
4champs : date debut, heure debut, date fin, heure fin.
Les dates et les heures n'etant pas forcement ceux qu'il y a dans ta base mais des données arbitraires (imagine ta requete le jour ou tu as plus de 500 ano, vla les selects)
 
ensuite pour selection dans ta base ben

Code :
  1. //Les tests initiaux ont été approuvés.
  2. $debut = $_POST['date_debut'].' '.$_POST['heure_debut']; //date_debut et heure_debut ont la meme synthaxe que heure dans la table ano
  3. $fin = $_POST['date_fin'].' '.$_POST['heure_fin'];
  4. $sql = "SELECT ce_ki_va_bien FROM anomalies_restauration
  5. where heure >= '$debut' and heure <= '$fin'";


Apres tu peux ameliorer ta requete, par exemple si $fin > $debut alors affichage des données dans le sens chronologique inverse

n°714452
ptibat
Posté le 03-05-2004 à 17:00:41  profilanswer
 

Sebastien a écrit :

Ton code est quand meme à revoir je pense.
Je verais plus les choses comme ca :
4champs : date debut, heure debut, date fin, heure fin.
Les dates et les heures n'etant pas forcement ceux qu'il y a dans ta base mais des données arbitraires (imagine ta requete le jour ou tu as plus de 500 ano, vla les selects)
 
ensuite pour selection dans ta base ben

Code :
  1. //Les tests initiaux ont été approuvés.
  2. $debut = $_POST['date_debut'].' '.$_POST['heure_debut']; //date_debut et heure_debut ont la meme synthaxe que heure dans la table ano
  3. $fin = $_POST['date_fin'].' '.$_POST['heure_fin'];
  4. $sql = "SELECT ce_ki_va_bien FROM anomalies_restauration
  5. where heure >= '$debut' and heure <= '$fin'";


Apres tu peux ameliorer ta requete, par exemple si $fin > $debut alors affichage des données dans le sens chronologique inverse


 
Merci je test de suite.  :jap:


Message édité par ptibat le 03-05-2004 à 17:24:24

---------------
flick r
n°714482
ptibat
Posté le 03-05-2004 à 17:23:54  profilanswer
 

Sebastien a écrit :

Je verais plus les choses comme ca :
4 champs : date debut, heure debut, date fin, heure fin.


 
Avec un format de date comme 2004-05-03 14:23:32, comment spécifié que $date debut = 2004-05-03 et que $heure debut= 14:23:32 ?  :pt1cable:.
 
(ou alors j'ai pas compris la methode :heink:)
 
Merci  :jap:


---------------
flick r
n°714498
Sebastien
Posté le 03-05-2004 à 17:36:31  profilanswer
 

tu fais un premier select avec juste les dates
2004-05-01
2004-05-02
2004-05-03
etc (tu peux t'amuser à reformater au format FR si tu veux)
pour les heures pareils
00h00
00h15
00h30
...
15h15
15h30
...
 
 
normalement le format date reconnait le 15:30 comme un 15:30:00

mood
Publicité
Posté le 03-05-2004 à 17:36:31  profilanswer
 

n°714511
ptibat
Posté le 03-05-2004 à 17:54:29  profilanswer
 

Sebastien a écrit :

tu fais un premier select avec juste les dates
2004-05-01
2004-05-02
2004-05-03
etc (tu peux t'amuser à reformater au format FR si tu veux)
pour les heures pareils
00h00
00h15
00h30
...
15h15
15h30
...
 
normalement le format date reconnait le 15:30 comme un 15:30:00


 
 
Justement, je n'arrive pas à séparé la date et l'heure du champ 2004-05-03 14:23:32. Pourtant c'est faisable ?  :??:  
 


---------------
flick r
n°714558
Sebastien
Posté le 03-05-2004 à 19:00:12  profilanswer
 

bien sur il y a pleins de fonction SQL qui le font
des DATE, left, etc, tu as que l'embarras du choix

n°714634
ptibat
Posté le 03-05-2004 à 20:14:03  profilanswer
 

Sebastien a écrit :

bien sur il y a pleins de fonction SQL qui le font
des DATE, left, etc, tu as que l'embarras du choix


 
Peut-tu m'expliquer comment faire ?
Parcque là je galère grave  :pt1cable:


---------------
flick r
n°714682
Sebastien
Posté le 03-05-2004 à 21:27:12  profilanswer
 

a l'arrach
left(heure,10) va te ressortir que le 2004-05-01

n°714807
ptibat
Posté le 04-05-2004 à 00:14:26  profilanswer
 

Sebastien a écrit :

a l'arrach
left(heure,10) va te ressortir que le 2004-05-01


 
Merci j'ai trouvé ca pour accèder au fonctions :
 

Code :
  1. function left($str,$nbr)
  2.  {
  3.    return substr($str,0,$nbr);
  4.  }
  5. function right($str,$nbr)
  6.  {
  7.    return substr($str,-$nbr);
  8.  }


Mais pour l'instant vu l'heure tardive je selectionne l'intervalle avec la forme de départ (2004-04-09 12:21:03). Et demain je commencerai avec les left() et right().
 
Merci pour les renseignement :jap:
 
 


---------------
flick r
n°714911
Sebastien
Posté le 04-05-2004 à 09:26:20  profilanswer
 

Tu pouvais faire directement le left et le right dans ta requete SQL


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Selection selon un intervalle de dates

 

Sujets relatifs
addition de chaine contenant des datesProblème de sélection avec VB pour calculer l'écart type
selection du selectProblème de calcul de dates
Différence de datesExcel, VBA, ACCESS et ... les dates ....
addition de datespb de selection avec count, group by, ...
Manipulation de datesProblème de joker * et selection for-each
Plus de sujets relatifs à : Selection selon un intervalle de dates


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)