Вы можете использовать NOT EXISTS:
select t.* from TableMain t
where t.date = '23-3-2020'
and not exists (
select 1 from TableMain
where date = t.date and time < t.time
)
или с row_number()
оконной функцией:
select t.Task_Id, t.Task, t.Time, t.Date, t.Repetition, t.Snooze_Time
from (
select *, row_number() over (order by time) rn
from TableMain
where t.date = '23-3-2020'
) t
where t.rn = 1
или:
select * from TableMain
where date = '23-3-2020'
order by time
limit 1
Обратите внимание, что вы должны Используйте только формат YYYY-MM-DD
для дат и mm:hh:ss
для времени, потому что это единственный формат, с которым вы можете безопасно работать в SQLite.