问题描述
我有两个已加入的表,我想在加入另一列的结果中添加。此列将是当前日期减去名为 start_date
的列日期的结果。我想将新列称为天数,因为差异以天为单位。
这是我加入的样子:
SELECT t.kind,t.start_date,t.user,t.user_email,t.completed,g.name
FROM d_trans AS t
JOIN d_gar AS g
ON t.rest_id = g.id
WHERE t.completed = false
AND t.kind = 'RESTING';
我的 sql 编码技能有限。我通常只在导入数据后使用 R。这在 R 中很简单,但我不确定如何在 sql 中执行此操作。我在网上查找了类似的问题,我看到诸如 ALTER TABLE ADD
添加新列和函数 GETDATE()
以获取当前日期,但我尝试的所有方法都不起作用。我在 AWS 的 Athena 工作,不知道我的问题是否是由于 Athena 的限制造成的。
解决方法
使用 date_diff('day',current_date,date_col) 函数:
SELECT t.kind,t.start_date,t.user,t.user_email,t.completed,g.name,date_diff('day',cast(t.start_date as timestamp),current_timestamp) as days
FROM d_trans AS t
JOIN d_gar AS g
ON t.rest_id = g.id
WHERE t.completed = false
AND t.kind = 'RESTING';