J'utilise PHP/MySQL et je pars du principe qu'une requête peut être exécutée et s'il y a des résultats correspondants, échouez, s'il n'y a pas de résultats correspondants, insérez-les.
Eh bien, essayez ceci. Ici :date:
est la date de l'entrée que vous allez ajouter, et :start-time:
et :finish-time:
sont respectivement ses heures de début et de fin.
SELECT EXISTS (
SELECT
1
FROM
TableName
WHERE
`date` = :date: AND
( :start-time: BETWEEN startTime AND finishTime OR
:finish-time: BETWEEN startTime AND finishTime OR
startTime BETWEEN :start-time: AND :finish-time:
)
) AS `Clash`