微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 SQL 中加入表后,通过从当前日期中减去日期列来创建新列

如何解决在 SQL 中加入表后,通过从当前日期中减去日期列来创建新列

我有两个已加入的表,我想在加入另一列的结果中添加。此列将是当前日期减去名为 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';

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。