SQL rekenen met tijd

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Joost van der Meijden

Joost van der Meijden

31/05/2010 02:15:52
Quote Anchor link
Beste,

Ik ben voor mijzelf een klein systeempje aan het maken zodat ik makkelijk de tijden die ik uitbetaald krijg bij kan houden.
Ik heb een tabel met een begintijd, een eindtijd, en een veld waarin de totale pauze aangegeven staat.

Hier een printscreentje van de query + de output:
Afbeelding

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
SELECT *,
    DATE_FORMAT(begin, '%d-%m-%Y %H:%m') AS begin_nl,
    DATE_FORMAT(eind, '%d-%m-%Y %H:%m') AS eind_nl,
    TIME_FORMAT((TIMEDIFF(eind, begin) - pauze), '%H:%m') as totaal_zonder_pauze
FROM
    events


Waarom krijg ik niet gewoon 3 uur en 45 minuten in de output in plaats van NULL?

Mvg, Joost.
Gewijzigd op 31/05/2010 02:20:21 door Joost van der Meijden
 
PHP hulp

PHP hulp

26/04/2024 18:19:33
 
Jelmer -

Jelmer -

31/05/2010 08:45:44
Quote Anchor link
TIMEDIFF levert iets in het formaat H:i:s op, pause is ook in het formaat H:i:s, maar als je het zo plot van elkaar aftrekt, komt er iets in het formaat His, zonder scheidingstekens uit. TIME en TIME_FORMAT lijken daar niet mee te willen werken?

Ik snap het ook niet, ik weet alleen dat SUBTIME in plaats van minus gebruiken wel werkte bij mij.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
TIME_FORMAT(SUBTIME(TIMEDIFF(eind, begin), pauze), '%H:%i') as totaal_zonder_pauze


Merk trouwens op dat %H:%m niet uur:minuut is, %i is minuut. %m is maand.
 
Joost van der Meijden

Joost van der Meijden

31/05/2010 17:55:09
Quote Anchor link
Dat werkt prima :)
En nog bedankt voor je opmerking; Totaal over het hoofd gezien.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.