[Mysql] Opvragen van waarden tussen 2 time velden

Pagina: 1
Acties:

  • derdappie
  • Registratie: September 2005
  • Laatst online: 11-02 12:54
Ik heb een tabel met de volgende kolommen: Dag, starttijd, eindtijd. Nu wil ik een query maken die de dag, starttijd en eindtijd selecteerd met een interval van 5 minuten op de starttijd, totdat hij de einttijd bereikt.

dus stel: tabel is gevuld met dag, starttijd, eindtijd (1, 10:00:00, 10:30:00)

in dit geval wil ik rijen terugkrijgen, namelijk

1, 10:00:00, 10:30:00
1, 10:05:00, 10:30:00
1, 10:10:00, 10:30:00
1, 10:15:00, 10:30:00
..
1, 10:30:00, 10:30:00


is dit mogelijk, en zo ja hoe? ik heb al diverse dingen geprobeerd met interval, maar ik kom er niet uit

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 09-12-2025
Kun je dat niet beter doen als je de gegevens al opgehaald heb? Een query lijkt me daar niet zo geschikt voor.

Noushka's Magnificent Dream | Unity


  • derdappie
  • Registratie: September 2005
  • Laatst online: 11-02 12:54
ja, dat probeer ik nu, maar ik moet dit inpassen in een systeem die al met de 5 minuten interval werkt, en wanneer het in een query kan zou het redelijk wat code schelen..

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 17:57
Het lijkt me niet dat je dit in MySQL kunt oplossen. Wat jij terug wilt krijgen zijn namelijk helemaal geen rijen in je database.

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Kun je date_diff() of iets dergelijks gebruiken voor zoiets? :)
Zie ook MySQL: Date and Time functions :)

[ Voor 20% gewijzigd door CH4OS op 01-08-2006 14:09 ]


  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 13-01 07:19
Als je van 1 rij meerdere rijen wilt maken heb je een tabel nodig met een kolom met oplopende cijfers (1, 2, 3, ...), zonder gaten, beginnend bij 1.

Dan doe je een join op die tabel met een < or > operator
SQL:
1
2
SELECT a.dag, TimestampAdd(MINUTE,b.id - 1,a.begintijd) AS begintijd2, a.eindtijd
FROM a LEFT JOIN b ON TimestampDiff(MINUTE,a.begintijd,a.eindtijd) / 5 > b.id

Als je geen mysql 5 hebt kun de Timestamp functies niet gebruiken, dus dan moet je op een andere manier werken met je tijden, bijvoorbeeld omzetten naar unixtimestamp en werken met secondes.
Pagina: 1