Date 在Presto SQL中将整数值转换为日期

Date 在Presto SQL中将整数值转换为日期,date,presto,dbeaver,Date,Presto,Dbeaver,下面是我试图在Presto中运行的脚本;从我试图转换为日期的整数字段中减去今天的日期。以获得两天之间的精确时间。不幸的是,突出显示的块似乎并不总是正确地转换日期,我的最终答案也不正确。请问是否有人知道另一种方法或将整数值转换为日期的标准方法。 列中的整数值的格式为“20191123”,表示年-月日期 select ms, activ_dt, current_date, date_diff('day',act_dt,current_date) from ( select ms,activ_

下面是我试图在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
您可以使用以下方法将“日期转换为数字”(例如2018年5月27日的20180527):

  • 投给瓦查尔
  • parse_datetime
    使用适当的格式
  • 强制转换到日期(因为
    parse_datetime
    返回
    时间戳
  • 例如:

    presto> SELECT CAST(parse_datetime(CAST(20180527 AS varchar), 'yyyyMMdd') AS date);
       _col0
    ------------
     2018-05-27
    
    您可以使用以下方法将“日期转换为数字”(例如2018年5月27日的20180527):

  • 投给瓦查尔
  • parse_datetime
    使用适当的格式
  • 强制转换到日期(因为
    parse_datetime
    返回
    时间戳
  • 例如:

    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);
    

    您可以使用以下示例查询来满足您的需求:

    select date_diff('day', date_parse('20191209', '%Y%m%d'), current_timestamp);