时间戳记和星期几

时间:2020-08-17 10:22:49

标签: sql sqlite db-browser-sqlite

我的查询要求我找到阳性人数及其传染期,即正负2周。在下面的查询中,我的两周时间戳记一直为空

select PersonID, f_name || ' ' || L_name as 'Citizen', Timestamp, datetime ('Timestamp', '+2 Weeks')
from person natural join Testing
where Results is 'Positive';

Timestamp is null

我的方程式有什么问题,为什么不将下两周的两周相加?

在数据库浏览器中,这是我必须用于日期时间的格式。

已附加架构 Schema

2 个答案:

答案 0 :(得分:2)

您要为字符串'Timestamp'添加两周,而不是值。我想你打算:

select PersonID, f_name || ' ' || L_name as 'Citizen',
       Timestamp, datetime (Timestamp, '+2 Weeks')
from person p oin
     Testing
     using (PersonId)
where Results = 'Positive';

请注意,我还将“自然联接”更改为显式显示join条件的联接(由于您的问题未指定,我不得不猜测它们是什么)。

我强烈,强烈不鼓励使用“自然连接”,我根本不认为它是“自然连接”。始终明确说明join条件。这有助于您阅读查询。这意味着查询没有意外行为,因为表中的两个列恰好具有相同的名称,并且这意味着如果有人向表中添加新列,查询将随着时间的推移继续工作。

答案 1 :(得分:2)

您无法使用DATETIME()函数添加类似的星期。
加上14天:

datetime(Timestamp, '+14 days')

您可以在这里找到:Modifiers您可以使用的所有修饰符。
此外,列名也不能在单引号内。