Я пытаюсь проверить или проверить даты в диапазоне, используя Oracle
sql, и попробовал что-то вроде этого:
SELECT * FROM VW_LEAVEDETAILS m WHERE M.EMPNO = '123456'
AND M.LV_FROM >= '17-OCT-2018' AND M.LV_TO <= '18-OCT-2018';
Date Range: Start - End
20-OCT-2018 - 22-OCT-2018 //This worked when checked
Это прекрасно работает для определенного диапазона дат.Но что, если у меня есть следующие диапазоны дат
Date Range: Start - End
22-OCT-2018 - 22-OCT-2018 //Date range 1 - in Database Table
18-OCT-2018 - 22-OCT-2018 //Date range 2 - User input
22-OCT-2018 - 24-OCT-2018 //Date range 2 - User input; Even this should be validated
См. Выше 22-OCT-2018 уже выделено для Таблица базы данных диапазон дат и всякий раз, когдакаждый пытается выделить это снова, должен выдать ошибку или, по крайней мере, увеличить диапазон.Я пытался что-то глупое, как это, наоборот, но застрял:
SELECT * FROM VW_LEAVEDETAILS m WHERE M.EMPNO = '123456'
AND M.LV_FROM >= '17-OCT-2018' AND M.LV_TO <= '18-OCT-2018'
OR M.LV_TO >= '17-OCT-2018' AND M.FROM <= '18-OCT-2018';
NB: В основном это для системы управления отпуском.Таким образом, всякий раз, когда в диапазоне выделяется дата, она должна проверяться.Ниже приведены три условия:
LV_FROM
между началом пользователя и датой окончания пользователя.LV_TO
находится между датой начала и окончания пользователяLV_FROM
перед датой начала пользователя, а LV_TO после даты окончания пользователя
Кредит отправляется @Corion за предложение по редактированию - спасибо.