SQLITE加入日期=日期+ x

时间:2017-01-24 04:05:35

标签: sqlite date join

我正在使用以下插入查询来创建两个表之间的比较,使用要加入的日期。

INSERT INTO Comp_Table (Date, CKROne, CKRTwo, ChangeOne, ChangeTwo, State) 
SELECT BaseTbl.Date, BaseTbl.CKR, CompTbl.CKR, BaseTbl.Change, CompTbl.Change, 
CASE 
WHEN BaseTbl.Change > 0 AND CompTbl.Change > 0 THEN 'positive' 
WHEN BaseTbl.Change < 0 AND CompTbl.Change < 0 THEN 'positive' 
ELSE 'inversely' 
END AS 'Correlation' 
FROM BaseTbl 
JOIN CompTbl ON BaseTbl.Date = CompTbl.Date;

这很有效。但是,我希望能够延迟加入表格。如同用户一样,用户可以定义他们是否想要在日期上进行完全匹配,或者他们是否想要使用一个日期加上一个数字,并从后一个日期返回该值以与前一个日期的数字进行比较。伪代码示例:

用户设置变量= 0然后

Join ComTbl On BaseTbl.Date = CompTbl.Date + 0;

用户设置变量= 7然后

Join CompTbl On BaseTbl.Date = CompTbl.Date + 7; 
(joins 2012-01-01 from BaseTbl to 2012-01-08 from CompTbl)

我试图像在Where子句('+ 7天')中那样添加天,但这不起作用。我还尝试使用带有BaseTbl.Date = CompTbl.Date '+ 7 day'的Where子句,但也返回了0值。如何在SQLite中实现?

1 个答案:

答案 0 :(得分:1)

我认为您可以使用DATE()函数构建所需的WHERE子句:

INSERT INTO ...
SELECT ...
FROM BaseTbl
INNER JOIN ComTbl
    ON BaseTbl.Date = DATE(CompTbl.Date, '7 days')