在 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 中将整数值转换为日期的主要内容,如果未能解决你的问题,请参考以下文章

如何在sql中将数字转换为日期

如何在 SQL 中将指数和系数转换为整数值

如何在 Presto 中将时间戳转换为日期?

sql 将整数值转换为日期

如何在 Presto/Hive 中将日期格式 YYYY-MM-DD 转换为整数 YYYYMMDD?

在 C++ 中将唯一字符串转换为唯一整数值