SQLite选择下一个最近的日期

时间:2016-11-03 19:34:53

标签: java sqlite quartz-scheduler

我有一个表格,其中包含以下列:

ID | DATE | CRON | MAXIMO |FEATURES
int  date   text   text    varcahr

我正在使用此表来存储与计划活动相关的数据。我想抓住CRON字符串,其中日期是当前日期时间的下一个元素。有没有一种简单的方法来实现这一目标?

1 个答案:

答案 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子句,但逻辑就在那里。