下面是我尝试在Presto中运行的脚本;从我试图转换为日期的整数字段中减去今天的日期。为了获得确切的日子。不幸的是,突出显示的块似乎并不总是正确转换日期,我的最终答案不正确。请有人知道解决此问题的另一种方法或将整数值转换为日期的标准方法。 列中的 Interger 值采用"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
您可以将"日期转换为数字"(例如。 2018 年 5 月 27 日20180527
(,使用以下方法:
- 演员到瓦尔查尔
- 使用适当格式
parse_datetime
- 投射至今(因为
parse_datetime
返回timestamp
(
例:
presto> SELECT CAST(parse_datetime(CAST(20180527 AS varchar), 'yyyyMMdd') AS date);
_col0
------------
2018-05-27
可以使用以下示例查询来满足要求:
select date_diff('day', date_parse('20191209', '%Y%m%d'), current_timestamp);