[CGI] tijd vergelijken

Pagina: 1
Acties:

  • EntonoX
  • Registratie: November 2001
  • Laatst online: 23:16

EntonoX

Team leider

Topicstarter
Hallo,

Even een vraag, ik krijg uit een mysql database twee "datetime" waarden. Maar nu moet ik het tijdverschil tussen deze twee "datetime" velden uitrekenen. Wie weet hoe je dit het gemakkelijkst op kan lossen en of er misschien standaard functies voor zijn. Twee voorbeelden:

Voorbeeld 1)
1e waarde: "2005-05-11 08:00:00"
2e waarde: "2005-05-11 08:25:10"

Uitkomst: "0 dag(en) 00:25:10"

Voorbeeld 2)
1e waarde: "2005-05-11 08:00:00"
2e waarde: "2005-05-10 10:25:10"

Uitkomst: "1 dag(en) 02:25:10"

Ik hoop dat dit duidelijk is, alle ideeen zijn welkom!

Edit: Taal is Perl, werk onder Linux server bij een Hosting Provider. Applicatie is kompleet geschreven in CGI met koppelingen naar MySQL databses. Wat ikzelf heb geprobeerd? dmv een query de datetime velden uitlezen, en perl alles laten uitrekenen tussen de tijden. Alleen is dit een aardig stuk code en ben ik van mening dat dit korter kan. Oplossing heb ik geprobeerd op te zoeken via de diverese perl websites, alleen kom ik daar methodes tegen die met timestamp werken wat ik dus eigenlijk niet wil.

[ Voor 36% gewijzigd door EntonoX op 11-05-2005 15:34 ]

-===< Triumph TR7, 1977, Finished >===-


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 22:11
Je zou het in mysql kunnen doen met behulp van verschillende tijd-functies van mysql. Een query als de volgende levert het verschil in seconden:
code:
1
2
3
4
SELECT UNIX_TIMESTAMP(`date1`) - UNIX_TIMESTAMP(`date2`) 
  AS timediff
  FROM table 
  WHERE 1

Regeren is vooruitschuiven


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 06-05 18:51

Creepy

Tactical Espionage Splatterer

En daarbij komt: wat heb je zelf al geprobeerd? Wat lukte daar niet mee? Krijg je foutmeldingen? Zo ja welke?
En de belangrijkste: in welke taal ben je bezig want CGI zegt helemaal niks over de taal waarin je script is geschreven (ik zou gokken op perl, maar aangezien je dat niet meldt ;) ).
Zie ook P&W FAQ - De "quickstart" voor de zaken die we graag zouden willen zien.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • EntonoX
  • Registratie: November 2001
  • Laatst online: 23:16

EntonoX

Team leider

Topicstarter
T-MOB schreef op woensdag 11 mei 2005 @ 14:54:
Je zou het in mysql kunnen doen met behulp van verschillende tijd-functies van mysql. Een query als de volgende levert het verschil in seconden:
code:
1
2
3
4
SELECT UNIX_TIMESTAMP(`date1`) - UNIX_TIMESTAMP(`date2`) 
  AS timediff
  FROM table 
  WHERE 1
Kijk dat is misschien wel nuttig, ik ga die timediff optie eens bekijken!

...Startpost aangepast...

-===< Triumph TR7, 1977, Finished >===-


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 06-05 18:51

Creepy

Tactical Espionage Splatterer

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • EntonoX
  • Registratie: November 2001
  • Laatst online: 23:16

EntonoX

Team leider

Topicstarter
Graag gedaan ;)

Maar ik heb de timediff optie bekeken, alleen werkt deze optie vanaf mysql 4.1.1 en de hostingprovider draait 4.0.1 dus die timediff zit daar nog niet in, jammer. Iemand nog ideeën? of moet ik het toch bij het zelf uitrekenen houden?

-===< Triumph TR7, 1977, Finished >===-


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 22:11
EntonoX schreef op woensdag 11 mei 2005 @ 16:16:
[...]
Graag gedaan ;)

Maar ik heb de timediff optie bekeken, alleen werkt deze optie vanaf mysql 4.1.1 en de hostingprovider draait 4.0.1 dus die timediff zit daar nog niet in, jammer. Iemand nog ideeën? of moet ik het toch bij het zelf uitrekenen houden?
De query die ik je gaf werkt in MySQL 3 ook al. De kolom `datediff` geeft daar het aantal seconden verschil aan. Dat is toch makkelijk om te zetten in een jaren, dagen, uren en seconden. Probleem is dan alleen zomertijd en schrikkeljaren...

Regeren is vooruitschuiven


  • EntonoX
  • Registratie: November 2001
  • Laatst online: 23:16

EntonoX

Team leider

Topicstarter
Ah, ok. Ik had van bronnen op internet begrepen dat de timediff functie alleen in de nieuwste versies van mysql werkte. Maar dit zal dan wel een opzichzelf staande timediff functie zijn. Ik ga dan toch maar even de functie uitproberen.

-===< Triumph TR7, 1977, Finished >===-

Pagina: 1