在 Presto SQL 中将整数值转换为日期
Posted
技术标签:
【中文标题】在 Presto SQL 中将整数值转换为日期【英文标题】:Converting Integer values to Date in Presto SQL 【发布时间】:2020-04-04 16:35:48 【问题描述】:以下是我尝试在 Presto 中运行的脚本;从我试图转换为日期的整数字段中减去今天的日期。获得确切的天数。不幸的是,突出显示的块似乎并不总是正确转换日期,我的最终答案也不正确。请有人知道另一种解决方法或将整数值转换为日期的标准方法。 列中的整数值的格式为“20191123”,表示年-月-日
select ms, activ_dt, current_date, date_diff('day',act_dt,current_date) from
(
select ms,activ_dt, **CAST(parse_datetime(CAST(activ_dt AS varchar), 'YYYYMMDD') AS date) as act_dt**, nov19
from h.A_Subs_1 where msisdn_key=23480320012
) limit 19
【问题讨论】:
【参考方案1】:您可以使用以下命令转换“日期为数字”(例如,20180527
表示 2018 年 5 月 27 日):
-
转换为 varchar
parse_datetime
具有适当的格式
投射到日期(因为parse_datetime
返回timestamp
)
例子:
presto> SELECT CAST(parse_datetime(CAST(20180527 AS varchar), 'yyyyMMdd') AS date);
_col0
------------
2018-05-27
【讨论】:
【参考方案2】:您可以使用以下示例查询来满足您的要求:
select date_diff('day', date_parse('20191209', '%Y%m%d'), current_timestamp);
【讨论】:
以上是关于在 Presto SQL 中将整数值转换为日期的主要内容,如果未能解决你的问题,请参考以下文章