verschill in seconden uitrekenen
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
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 -
Maak een screenshot van de reactie van Frank :P
Tevens hartelijk bedankt :)
@ Frank,
Waarom ik dat wil,
uhm, zomaar :p
dit is hem geworden:
nu kan ik dus de begintijd ook weer uit de tabel verwijderen, die heb ik eigenlijk helemaal niet nodig :p
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.
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?
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.
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.
@ Blanche: okee, dan werkt het prima.