如何获得 prestodb 的天数间隔?我可以转换为毫秒并将这些转换为天数,但我正在寻找是否有更短的方法来做到这一点。
示例:我想查看自插入表中的第一行以来已经过了多少天。
SELECT
to_milliseconds(date(current_date) - min(created)) / (1000*60*60*24) as days_since_first_row
FROM
some_table
Run Code Online (Sandbox Code Playgroud)
我希望看到的:(以下之一)
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
Run Code Online (Sandbox Code Playgroud)
使用减法获得一个间隔,然后使用day该间隔来获得经过的天数。
presto:default> select day(current_date - date '2018-07-01');
_col0
-------
86
Run Code Online (Sandbox Code Playgroud)
相关文档位于https://trino.io/docs/current/functions/datetime.html
不幸的是,夏令时打破了公认答案的解决方案。由于夏令时和作为时间戳的下限函数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')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10967 次 |
| 最近记录: |