Bestaat er in mysql een soort closest to functie? Als ik bijvoorbeeld met timestamps werk en ik wil de dichstbijzijnde tijd die bij 3 uur smiddags ligt?
Verwijderd
Volgens mij bestaat er standaard niet zo'n functie, maar wat je zou kunnen proberen is het volgende.[b]Bestaat er in mysql een soort closest to functie?
select tijd from klok where tijd > 2 and < 4;
je kunt dit uitbreiden met een php script, dat hierna de de dichtstbijzijnde waarden van de result eruit filterd.
Ik hoop dat je er wat aan hebt.
Op donderdag 30 mei 2002 19:55 schreef sjoerdb het volgende:
Bestaat er in mysql een soort closest to functie? Als ik bijvoorbeeld met timestamps werk en ik wil de dichstbijzijnde tijd die bij 3 uur smiddags ligt?
code:
1
2
3
4
5
| SELECT *
FROM table
WHERE ....
ORDER BY Abs(timefield - Cast('15:00:00' AS time)) ASC
LIMIT 1 |
Wel nog even naar de CAST kijken, ik ben niet zo bekend met MySQL dat ik weet hoe dat precies werkt in MySQL dus heb ik maar de SQL92 standaard CAST functie genomen en ik weet niet of MySQL dat deel van de standaard heeft geimplementeerd.
Als je op een of andere manier het aantal uur uit je timestamp kan halen (delen door 60, resultaat module 24, zou een lompe methode zijn) kun je natuurlijk gewoon het gewenste getal (bijvoorbeeld 3 voor 3 uur) aftrekken en sorteren op absolute waarde (kleinste eerst).