Stel in de database staat een aantal records met in elk een andere begin- en een eindtijd (verder nog veel meer info).

BIJV:
drie tijdranges begintijd-eindtijd op datum1
twee tijdranges begintijd-eindtijd op datum2
een tijdrange begintijd-eindtijd op datum3

datum1: 09:00-11:30 13:00-15:00 20:00-22:30
datum2: 09:00-11:30 20:00-22:30
datum3: 13:00-15:00

Ik wil nu bijv een record met daarin 13:00-15:00 toevoegen op deze drie datums als dat kan, anders niet.
Op datum1 en datum3 gaat dat niet (bezet), maar wel op datum2 (range is nog vrij).

datum2 moet dus worden:
datum2: 09:00-11:30 13:00-15:00 20:00-22:30
de andere datums blijven ongewijzigd,

Hoe kan ik dit makkelijk doen?

Ik heb geprobeerd in een while steeds een record te lezen dan te bepalen of het record met de nieuwe range past, maar kan dat niet bepalen. Ik heb geprobeerd eerst alle records van eenzelfde datum te lezen en die in een variabele zetten en dan te bepalen of het nieuwe record met de gegeven tijdrange past, maar kom daar als beginner niet uit.

Wie kan helpen?

Bvd
Zo te zien sla jij de tijden zo op
11:00 - 12:30
12:30 - 14:00
15:30 - 17:00

Als je dan met BETWEEN zo controleren voor de periode van 14:00 - 1530, zou deze niet vrij zijn:

SELECT '14:00' BETWEEN '12:30' AND '14:00'
-> 1 (true)

Voor een periode van 15:00 - 17:30 zou de laatste in het rijtje geselecteerd moeten worden, maar dat is niet:

SELECT '15:00' BETWEEN '15:30' AND '17:00' OR '17:30' BETWEEN '15:30' AND '17:00'
-> 0 (false)

Reageren