presto⽇期转换及计算
ORACLE⽤习惯了,presto没to_date真⿇烦
oracle 时间转换如要做⽇期计算还要转换,源表⽇期为string 格式为yyyymmdd,要转成date才能计算
// create_date = 20180720
select cast(concat(substr(create_date,1,4),'-',substr(create_date,5,2),'-',substr(create_date,7,2))as date)
结果 2018-07-20
计算截⽌当前系统⽇期3年内的数据,不像oracle时间直接相减得到天数,转个to_number就可以与具体天数(数字)做⼤⼩⽐较,这⾥要⽤date_diff(具体⽤法引⽤wwwblogs/Allen-rg/p/11321170.html),补充计算年设置参数为’year’即可
// create_date = 20180720,计算截⽌当前3年内数据
select current_date,create_date,
date_diff('year',cast(concat(substr(create_date,1,4),'-',substr(create_date,5,2),'-',substr(create_date,7,2))as date),cast(current_date as date))
from表A
where date_diff('year',cast(concat(substr(create_date,1,4),'-',substr(create_date,5,2),'-',substr(create_date,7,2))as date),cast(current_date as date))<3;
结果:
2020-09-25 20180720 2

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。