如何获取prestodb的天数间隔?我可以转换为毫秒并将其转换为天数,但是我正在寻找是否有更短的方法来做到这一点。
示例:我想看看从表中的第一行插入多少天了。
SELECT
to_milliseconds(date(current_date) - min(created)) / (1000*60*60*24) as days_since_first_row
FROM
some_table
我希望看到的:(下面的1个)
SELECT
to_days(date(current_date) - min(created)) / (1000*60*60*24) as days_since_first_row
,cast(date(current_date) - min(created)) as days) as days_since_first_row2
FROM
some_table
答案 0 :(得分:1)
使用减法获得一个间隔,然后对该间隔使用day
来获取经过的天数。
presto:default> select day(current_date - date '2018-07-01');
_col0
-------
86
答案 1 :(得分:0)
不幸的是,夏令时使解决方案脱离了公认的答案。由于夏时制,DAY(DATE '2020-09-6' - DATE '2020-03-09')
和DAY(DATE '2020-09-6' - DATE '2020-03-08')
均等于181,并且DAY
充当时间戳的下限函数。
相反,请使用DATE_DIFF
:
DATE_DIFF('day', DATE '2020-09-6', DATE '2020-03-09')