时间戳记和星期几

问题描述

我的查询要求我找到阳性人数及其传染期,即正负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

解决方法

您要为字符串'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条件。这有助于您阅读查询。这意味着查询没有意外行为,因为表中的两个列恰好具有相同的名称,并且这意味着如果有人向表中添加新列,查询将随着时间的推移继续工作。

,

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

datetime(Timestamp,'+14 days')

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