par
niuxe » 08 janv. 2014, 17:00
Salut,
voici mon MCD ci-joint
Je ne le vois pas sur le forum.
Ce que j'ai cru comprendre (car ton explication n'est pas clair), tu as en base des lignes avec date_debut et date_fin ? A partir de là, c'est pas difficile. Tu extrais la date de début et la date de fin. Ensuite tu convertis ces données en
timestamp. Tu soustrais le timestamp de la date de début au timestamp de la date de fin. Ca te donnera la différence en secondes. Tu n'as plus qu'à diviser par 3600 (nombre de secondes par heure) pour connaitre le nombre d'heure de différences. Si tu veux connaitre le nombre de jours, tu divises par 3600 * 24.
J'ai bien compris que tu fais du windev. Cependant, en windev ou php ou Python ou etc., je suis sûr que ça reste relativement la même chose :
<?php
$hier = mktime(0,0,0,1,7,2014);
$maintenant = time();
$dif = $maintenant - $hier;
echo $dif / 3600;
?>
Sinon avec MySql, tu peux obtenir un résultat équivalent en utilisant les fonctions (voir mieux):
-
DATEDIFF(date-fin,date-debut)
-
TIMESTAMPDIFF(unite-de-mesure,date-fin,date-debut)
Regarde si dans ta base tu as ces petites fonctions supplémentaires.
Pour ton cas, ça devrait donner un truc comme (fait de tête, je peux me tromper, mais je te mets sur la piste) :
SELECT
TIMESTAMPDIFF(DAY, unetable.date_debut, unetable.date_fin) AS nb_jours,
TIMESTAMPDIFF(HOUR,unetable.date_debut, unetable.date_fin) AS nb_heures
FROM
unetable
Cette requête peut être grandement améliorée. Là, elle te donnera le nombre d'heures différence au total. Au lieu d'avoir 36 heures par exemple, tu voudrais surement voir 1 jour et 12 heures. Il te suffit d'améliorer cette expression sql pour avoir quelque chose de plus propre.
Salut,
[quote="fokher"]voici mon MCD ci-joint [/quote]
Je ne le vois pas sur le forum.
Ce que j'ai cru comprendre (car ton explication n'est pas clair), tu as en base des lignes avec date_debut et date_fin ? A partir de là, c'est pas difficile. Tu extrais la date de début et la date de fin. Ensuite tu convertis ces données en [url=https://www.google.fr/search?q=timestamp&oq=timestamp&aqs=chrome..69i57j5j0l2.283j0j1&sourceid=chrome&ie=UTF-8]timestamp[/url]. Tu soustrais le timestamp de la date de début au timestamp de la date de fin. Ca te donnera la différence en secondes. Tu n'as plus qu'à diviser par 3600 (nombre de secondes par heure) pour connaitre le nombre d'heure de différences. Si tu veux connaitre le nombre de jours, tu divises par 3600 * 24.
J'ai bien compris que tu fais du windev. Cependant, en windev ou php ou Python ou etc., je suis sûr que ça reste relativement la même chose :
[php]
<?php
$hier = mktime(0,0,0,1,7,2014);
$maintenant = time();
$dif = $maintenant - $hier;
echo $dif / 3600;
?>
[/php]
Sinon avec MySql, tu peux obtenir un résultat équivalent en utilisant les fonctions (voir mieux):
- [url=http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_datediff]DATEDIFF(date-fin,date-debut)[/url]
- [url=http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff]TIMESTAMPDIFF(unite-de-mesure,date-fin,date-debut)[/url]
Regarde si dans ta base tu as ces petites fonctions supplémentaires.
Pour ton cas, ça devrait donner un truc comme (fait de tête, je peux me tromper, mais je te mets sur la piste) :
[sql]
SELECT
TIMESTAMPDIFF(DAY, unetable.date_debut, unetable.date_fin) AS nb_jours,
TIMESTAMPDIFF(HOUR,unetable.date_debut, unetable.date_fin) AS nb_heures
FROM
unetable
[/sql]
Cette requête peut être grandement améliorée. Là, elle te donnera le nombre d'heures différence au total. Au lieu d'avoir 36 heures par exemple, tu voudrais surement voir 1 jour et 12 heures. Il te suffit d'améliorer cette expression sql pour avoir quelque chose de plus propre.