一、数据类型--时间戳(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(string, format) → timestamp
参考:
https://prestodb.io/docs/current/functions/datetime.html
https://zhuanlan.zhihu.com/p/164645100