0

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

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

时间戳为空

我的等式有什么问题,为什么不在下一列中添加 2 周?

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

附加架构 架构

4

2 回答 2

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条件。这有助于您阅读查询;这意味着查询没有意外行为,因为表中的两列恰好具有相同的名称,这意味着如果有人向表中添加新列,查询将继续工作。

于 2020-08-17T10:24:43.287 回答
2

您不能使用该DATETIME()功能添加这样的星期。
增加 14 天:

datetime(Timestamp, '+14 days')

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

于 2020-08-17T10:34:36.543 回答