TableMain
Task_Id Task Time Date Repetition Snooze_Time
1 Meeting 22:59 23-3-2020 2 7
2 Meeting 2 20:40 23-3-2020 1 5
我需要这样的结果:其中Time
最小,Date
=23-3-2020注意:Time
存储为String(可以看到它有(:(冒号(结果应仅包含1行。(假设表中没有相同的时间(
Task_Id Task Time Date Repetition Snooze_Time
2 Meeting 2 20:40 23-3-2020 1 5
我想知道是否存在通过或Time
检索数据顺序的查询。如果可能的话,告诉我这个问题。如果不可能,告诉我该怎么办?
您可以使用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中可以安全使用的唯一格式。