首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLITE SQLITE= Date +x

SQLITE SQLITE= Date +x
EN

Stack Overflow用户
提问于 2017-01-24 04:05:34
回答 1查看 362关注 0票数 0

我使用下面的insert查询来创建两个表之间的比较,使用要连接的日期。

代码语言:javascript
复制
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

代码语言:javascript
复制
Join ComTbl On BaseTbl.Date = CompTbl.Date + 0;

用户设置变量=7

代码语言:javascript
复制
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中实现这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-24 04:15:50

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

代码语言:javascript
复制
INSERT INTO ...
SELECT ...
FROM BaseTbl
INNER JOIN ComTbl
    ON BaseTbl.Date = DATE(CompTbl.Date, '7 days')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41819831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档