Используйте UNION
для строки с максимальным TIME
, который меньше date1
:
select * from inv WHERE TIME BETWEEN date1 AND date2
UNION
select * from inv WHERE TIME = (select MAX(TIME) from inv WHERE TIME < date1)
Если будет более 1 дополнительных строк, и вы хотите ровно 1, вы можетедобавьте к вышеуказанному коду:
LIMIT 1