我有一个表格,其中包含以下列:
ID | DATE | CRON | MAXIMO |FEATURES
int date text text varcahr
我正在使用此表来存储与计划活动相关的数据。我想抓住CRON字符串,其中日期是当前日期时间的下一个元素。有没有一种简单的方法来实现这一目标?
答案 0 :(得分:0)
我认为这可能对你有用。我不太熟悉sql-lite所以我使用了oracle sql:
首先使用此子查询获取每个ID的所有最接近的记录:
select T1.ID, min(ABS(t1.date - t2.date)) date2
from TABLE_NAME t1,
TABLE_NAME t2
where t1.ID != t2.ID --don't look at the same row's of you'll get 0 every time.
--You'll have to play with the where clauses depending on what you're looking for.
--This would return the closest date regardless of the ID or other columns
group by T1.ID
;
现在,只要您需要查找最近的日期,就可以在常规查询中使用该子查询:
SELECT TAB1.ID, SUB1.MinDate
FROM
(
select T1.ID, min(ABS(t1.date - t2.date)) MinDate
from TABLE_NAME t1,
TABLE_NAME t2
where t1.ID != t2.ID time.
group by T1.ID
) SUB1,
TABLE_NAME TAB1
WHERE SUB1.ID = TAB1.ID
;
我认为这应该适合你所要求的。您可能需要修改are子句,但逻辑就在那里。