首页 > 解决方案 > 雅典娜日期差异

问题描述

我正在尝试做我认为简单的日期差异函数,但由于某种原因,我的单位值被读取为列(“dd”),所以我不断收到无法解析列的错误

我正在使用 AWS Athena

我的代码是这个

SELECT "reservations"."id" "Booking_ID"
    , "reservations"."bookingid" "Booking_Code"
    , "reservations"."property"."id" "Property_id"
    , CAST("from_iso8601_timestamp"("reservations"."created") AS date) "Created"
    , CAST("from_iso8601_timestamp"("reservations"."arrival") AS date) "Arrival"
    , CAST("from_iso8601_timestamp"("reservations"."departure") AS date) "Departure"
    , CAST("from_iso8601_timestamp"("reservations"."modified") AS date) "Modified"
    , date_diff("dd", CAST("from_iso8601_timestamp"("reservations"."created") AS date), CAST("from_iso8601_timestamp"("reservations"."arrival") AS date)) "LoS"
FROM
    "database".reservations
LIMIT 5;

我试图从“创建日期”和“到达日期”中获得天数的差异

我已经用 DD,"DD","dd",dd,Day,day,"day" 尝试了 date_diff,我得到了同样的错误。

标签: amazon-web-servicesamazon-athenaprestodatediff

解决方案


Athena 基于 Presto。请参阅 Presto 文档以了解date_diff()-- 该单位是常规的varchar,因此需要用单引号括起来:

date_diff('day', ts_from, ts_to)

推荐阅读