presto mysql 时间_presto 日期函数和操作

date '2012-08-08' + interval '2' day  日期增加 两天 ,结果 : '2012-08-10'

Presto 是一个工具,被用来通过分布式查询来有效的查询大量的数据。Presto 是一个可选的工具,

可以用来查询 HDFS,通过使用 MapReduce 的作业的流水线,例如 hive,pig,但是又不限于查询 HDFS 数据,

它还能查询其他的不同数据源的数据,包括关系数据库以及其他的数据源,比如 cassandra;

Presto 被设计为处理数据仓库和分析:分析数据,聚合大量的数据并产生报表,这些场景通常被定义为 OLAP。

presto 使用时注意:

主要是各种格式转换,表(table)中所有数据均是string格式,所有的格式均需要转换:

1)日期需要转化为date型

2)除法中分子&分母需要转化为double型

3)因为create_time是2019-01-01 00:00:00.0的格式,我用substr取前10位,结果在presto中就成空了,我就用的split函数根据空格分割的create_time,然后取分割后的第一部分,在presto中取第一部分是[1]不是[0]

4)如果需要计算前几天的 日期可以用

绝对日期:date '2019-03-15' - interval '2' day,也就是2019-03-13

相对日期:假如今天是2019-03-15,也可以用cast(sysdate(-1) as date) - interval '1' day,也就是2019-03-13

举个栗子,如下

select

'num_07d' as zhibiao,

zb,

num,

num_all,

cast(num as double) / cast(num_all as double) as ration

from

(

select

index_a as zb,

count(id) as num

from

table

where

dp = 'ACTIVE'

and cast(split(create_time, ' ') [1] as date) <= cast(sysdate(-2) as date)

and cast(split(create_time, ' ') [1] as date) >(cast(sysdate(-2) as date) - interval '7' day)

group by

index_a

)

a,

(

select

count(id) as num_all

from

table

where

dp = 'ACTIVE'

and cast(split(create_time, ' ') [1] as date) <= cast(sysdate(-2) as date)

and cast(split(create_time, ' ') [1] as date) >(cast(sysdate(-2) as date) - interval '7' day)

)

b

https://blog.csdn.net/flashfishoo/article/details/88601283

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值