presto时间相关的函数

一、数据类型--时间戳(timestamp)格式

timestamp在存储时被保存成INT类型,只占用4个字节,但同时它可以显示为日期时间格式,保证了可读性,这就为我们使用数据带来了很多方便。

timestamp可以是10位也可以是13位,10位的精确到秒,13位的精确到毫秒,13位的必须用bigint或varchar(13)存储。

二、格式转换

主要涉及(表示日期的)string与timestamp之间的转换

会让人比较费解的可能是int要通过from_unixtime函数才能转化成timestamp

-- timestamp - > string:

select format_datetime(from_unixtime(1510284058),‘yyyy-MM-dd HH:mm:ss’)

-- string - > timestamp

select to_unixtime(date_parse('2020-07-19 00:00:09','%Y-%m-%d %H:%i:%s'))

三、增减运算

-- 减一天

select date_format(date_parse('20200818', '%Y%m%d') - interval '1' day, '%Y%m%d')

-- 加29小时

select date_parse('2020-07-19 00:00:09','%Y-%m-%d %H:%i:%s') + interval '29' hour

date_format(timestamp, format) → varchar

date_parse(stringformat) → timestamp

参考:

https://prestodb.io/docs/current/functions/datetime.html

https://zhuanlan.zhihu.com/p/164645100

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。