Calcul sur heure

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Calcul sur heure

par Geckco » 08 avr. 2007, 21:20

Un grand merci pour votre réponse,
mais le serveur que j'utilise a encore la version 3.23 de MySQL et je ne sais pas comment faire pour modifier juste la version de MySQL sans toucher à PHP (version 4.2.0) puisqu'une grosse application tourne sous PHP et qu'elle ne tourne pas sur une version supérieure sans retoucher beaucoup le code (variables).
Alors je suis preneur pour une autre solution que subtime() ou sur le moyen de modifier la version de MySQL.
Bien cordialement
Geckco

par ouckileou » 07 avr. 2007, 00:10

Déjà si j'étais à ta place, je fusionnerais ces deux colonnes, en une seule au format datetime.

Tu as dans la FAQ ce sujet : http://www.phpfrance.com/forums/voir_sujet-8323.php, dans lequel on trouve "4 - Obtenir une date dans le futur/le passé ". Bon c'est pour une date, mais c'est presque la même chose pour les temps. Donc dans ton cas, ça pourrait être un truc dans le genre :

Code : Tout sélectionner

SELECT col1, col2 FROM table WHERE DateRenv = NOW() AND HeureRenv >= SUBTIME(CURTIME(), '00:30:00.000000');
Bon là ce qui est embêtant c'est si tu fais ta recherche entre 00:00 et 00:30... d'où l'intérêt de fusionner les deux colonnes, SUBTIME se chargera de tout ;)

À tester, notamment en vérifiant si les fonctions sont dispos dans ta versions de MySQL (si tu utilises MySQL, tu n'as pas précisé...)

=> http://dev.mysql.com/doc/refman/5.0/en/ ... tions.html

par Geckco » 06 avr. 2007, 21:49

Bonjour,
Dans ma base de données j'ai :
  • une colonne qui contient la date de l'enregistrement au format date 0000-00-00 (DateRenv)
    et une colonne qui contient l'heure de l'enregistrement au format time 00:00 (HeureRenv).
Ce que je désire est de pouvoir afficher tous les enregistrements dont le champ HeureRenv <= heure actuelle et > heure actuelle - 30'. Mon problème se situe au niveau du calcul de ces trentes minutes surtout lorsque l'heure doit être modifiée !!

Je n'ai pas trouvé le renseignement dans la FAQ d'où mon message !

Bien cordialement et merci pour votre aide

par ouckileou » 06 avr. 2007, 00:05

Ta requête est compliquée et ne nous aide pas vraiment, tout ce qu'il faut savoir c'est : est-ce que tu as une colonne qui stocke la date de l'enregistrement, et en quel format ?

Si oui, et si c'est une colonne de type DATE, tu trouveras dans la FAQ comment calculer un intervalle avec MySQL.

Calcul sur heure

par Geckco » 05 avr. 2007, 22:56

Bonjour,

J'aimerais obtenir la liste de tous les enregistrements effectués durant les 30 dernières minutes dans une table

Je n'arrive pas à indiquer cela dans ma requête

Code : Tout sélectionner

query = "SELECT NomEleve, id_Renv, NomMaitre, Discipline, CONCAT( DATE_FORMAT(DateRenv, '%e'), ' ', CASE DATE_FORMAT(DateRenv, '%m') WHEN 1 THEN 'jan.' WHEN 2 THEN 'f&eacute;v.' WHEN 3 THEN 'mars' WHEN 4 THEN 'avr.' WHEN 5 THEN 'mai' WHEN 6 THEN 'juin' WHEN 7 THEN 'jui.' WHEN 8 THEN 'ao&ucirc;t' WHEN 9 THEN 'sep.' WHEN 10 THEN 'oct.' WHEN 11 THEN 'nov.' WHEN 12 THEN 'd&eacute;c.' ELSE 'Inconnu' END) AS DateR FROM SR.renvoisTEST WHERE Motif='' and Annule=0 and HeureRenv<='$HeureR' and HeureRenv>'$HeureR'-30 minutes and id_an='".$_SESSION['id_an']."' ORDER BY id_Renv ASC";
Merci d'avance de votre aide

Bien cordialement