Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/08/2007, 19h08   #1
Candidat au titre de Membre du Club
 
Inscription : décembre 2006
Messages : 62
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 62
Points : 12
Points : 12
Par défaut [SQL] Difference entre deux champs DATETIME

Bonjour,

J'ai deux champs dans ma base sql au format DATETIME.

Comment afficher la différence des deux en secondes?

En sachant que DATEDIFF ne s'occupe pas des heures, mais uniquement des jours.
Et que je suis sur SQL 4.0.27 et ne dispose donc pas de TIMEDIFF

Merci à vous.
syl2042 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2007, 21h19   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
tu les récupères en PHP et tu fais la différence en php avec strftime() qui permet de transformer une chaine correspondant a une date en secondes.
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2007, 12h39   #3
Candidat au titre de Membre du Club
 
Inscription : décembre 2006
Messages : 62
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 62
Points : 12
Points : 12
Bon, je sèche un peu sur ce truc tout simple...

J'ai ceci (je passe les détails de connection à la base):
Code :
1
2
3
4
5
6
$date=strtotime($date11);
$dateenvoi=strtotime($date12);
 
 
$tempsreel=$dateenvoi-$date;
echo strftime('%H:%M:%S', $tempsreel);
J'ai une date (format sql DATETIME) de début ($date) que je transforme en timestamp
J'ai une date de fin (format sql DATIME) qui est $dateenvoi et que je transforme aussi en timestamp.

Je fais la différence entre les deux.

Et j'affiche avec strftime.

Le problème, c'est que j'ai 5 secondes de différences réelles entre les deux dates, et qu'il m'affiche 01:00:05

Ah, et je rajouterais que j'aimerais bien aussi avoir les millisecondes...

Une petite aide?
Merci
syl2042 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2007, 14h10   #4
Candidat au titre de Membre du Club
 
Inscription : décembre 2006
Messages : 62
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 62
Points : 12
Points : 12
Bon, il semble que j'ai un problème..

J'explique ce que je souhaiterais...

J'ai une date et heure de début enregistrée dans la base sous format DATETIME
J'ai une date de fin enregistrée dans la base sous format DATETIME.

Le format DATETIME ne prend pas les millisecondes, alors que j'en ai besoin...

Donc première question, comment enregistrer dans la base mes jours, dates et heures avec les millisecondes?

Et ensuite faire la différence des deux pour obtenir un affichage H:M:S:MS

Merci
syl2042 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2007, 17h20   #5
Membre éprouvé
 
Homme
Développeur informatique
Inscription : janvier 2005
Messages : 349
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 50
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique
Secteur : Conseil

Informations forums :
Inscription : janvier 2005
Messages : 349
Points : 439
Points : 439
Salut,
Je ne pense pas que les formats de temps prennent les millisecondes.
Sinon pour travailler en secondes avec des timestamp :
Dans ta requête, utilise
Code :
select unix_timestamp(date1) as d1, unix_timestamp(date2) as d2 from ta_table where cond = qui_va_bien
Ainsi d1 - d2 te donnera le nombre de secondes. Pour le mettre en format horaire, ça ne devrait pas poser de problème, j'imagine.
beeboo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h15.


 
 
 
 
Partenaires

Hébergement Web