verschill in seconden uitrekenen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Erik Rijk

Erik Rijk

08/11/2006 21:25:00
Quote Anchor link
Beste,

Ik zou graag het verschil tussen 2 DATETIME velden willen uitrekenen. ( in seconden ).

Hoe realiseer ik dit ?

de DATETIME velden in de database heten: "begin" en "eind" :)
Een duwtje in de goeie richting is ook prima :) weet ik in ieder geval waar ik op moet gaan zoeken....

Mvg,

Erik
 
PHP hulp

PHP hulp

18/11/2024 22:57:36
 
Joren de Wit

Joren de Wit

08/11/2006 21:30:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
SELECT
    TIME_TO_SEC(TIMEDIFF(eind, begin)) AS verschil
FROM tabel
 
Frank -

Frank -

08/11/2006 21:30:00
Quote Anchor link
Waarom zou je in vredesnaam het verschil in secondes willen hebben?

Maar goed, je kunt van een DATETIME zo een TIMESTAMP maken. En wanneer je er daar 2 van hebt, kun je ze van elkaar gaan aftrekken.

SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00');

Ik zou alleen niet weten waar je dit voor nodig kunt hebben...

Edit: De oplossing van Blanche is vele malen fraaier! Niet aan gedacht, kende hem ook niet. Weer wat geleerd!
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Erik Rijk

Erik Rijk

08/11/2006 21:40:00
Quote Anchor link
@ Blanche,

Maak een screenshot van de reactie van Frank :P
Tevens hartelijk bedankt :)

@ Frank,

Waarom ik dat wil,
uhm, zomaar :p

dit is hem geworden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
SELECT
    TIME_TO_SEC(TIMEDIFF(eind, NOW())) AS verschil
FROM tabel

nu kan ik dus de begintijd ook weer uit de tabel verwijderen, die heb ik eigenlijk helemaal niet nodig :p
 
Jan Koehoorn

Jan Koehoorn

08/11/2006 22:22:00
Quote Anchor link
Ik heb nog een aanvulling: TIMEDIFF berekent wel het verschil tussen twee DATETIME velden, maar bijvoorbeeld deze query:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT TIMEDIFF( '2006-03-01 13:00:00', '2006-02-01 12:00:00' ) AS verschil

geeft als output: 673:00:00
Als je echt de seconden wilt zul je dus moeten exploden op de : en gaan rekenen met de uren en de minuten. Ik denk daarom dat een UNIX_TIMESTAMP in je query hier handiger is.
 
Erik Rijk

Erik Rijk

08/11/2006 22:25:00
Quote Anchor link
@ Jan,

SELECT
TIME_TO_SEC(TIMEDIFF(2006-11-08 21:00:00, 2006-11-08 20:59:00)) AS verschil
FROM tabel

hier is de output: 60
dus precies het aantal seconden....kan niet beter lijkt mij?
 
Jan Koehoorn

Jan Koehoorn

08/11/2006 22:47:00
Quote Anchor link
Ja natuurlijk, als de tijden zo dicht bij elkaar liggen... Maar ik neem aan dat je een DATETIME gebruikt omdat de datum ook belangrijk is en het dus kan gebeuren dat het verschil meer is dan 1 dag. En dan krijg je dus een output zoals in mijn voorbeeld.
 
Joren de Wit

Joren de Wit

08/11/2006 22:53:00
Quote Anchor link
Ook als de data verder uit elkaar liggen zal de functie TIME_TO_SEC() werken. Als ik mijn voorbeeld op jouw datum/tijden toepas, komt er netjes 2422800 uit. En dat is weer gelijk aan 673*3600.
 
Jan Koehoorn

Jan Koehoorn

08/11/2006 23:18:00
Quote Anchor link
@ Blanche: okee, dan werkt het prima.
 



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.