Presto SQL-日期时间常用的处理
本文总结一下Presto SQL日期时间比较常用的处理:
1. 特定的日期时间值
select current_date, --当前的日期 current_time, --当前的时间 current_timestamp, --当前的时间戳 date'2021-09-01', --给定的日期 time'12:30:00', --给定的时间 timestamp'2021-09-01 12:30:00' --给定的时间戳
需要输入日期时间时,使用前缀date、timestamp、time就会将输入的字符串识别为日期时间。
2. 常用的日期时间处理
select current_date, --当前日期 current_date - interval '1' day, --往前推1天 current_date + interval '3' day, --往后推3天 date_add('day', -1, current_date), --往前推1天 date_add('day', 3, current_date), --往后推3天 date_trunc('month', current_date), --当月第1天 date_trunc('month', current_date) - interval '1' month, --前1月第1天 date_trunc('month', current_date) - interval '1' day, --前1月最后1天 date_trunc('week', current_date), --当周第1天 date_diff('day', date'2021-09-01', date'2021-09-23'), --相差天数 to_char(current_date, 'yyyy-mm'), --将日期时间值转换为字符串月份 to_char(current_date, 'yyyymmdd'), --将日期时间值转换为字符串日期 date(date_parse('20210901', '%Y%m%d')), --将日期字符串转换为日期值 date('2021-09-01'), --将日期字符串yyyy-mm-dd转换为日期值 cast('2021-09-01' as date) --将日期字符串yyyy-mm-dd转换为日期值
date_trunc(unit, x) → [same as input]
将日期时间值按照给定的单位进行转换,输出的字段类型和输入的字段类型是一样的。
date_add(unit, value, timestamp) → [same as input]
将日期时间值按照给定的单位和数值进行加减, 输出的字段类型和输入的字段类型是一样的 。
date_diff(unit, timestamp1, timestamp2) → bigint
计算2个日期时间相差多少数量的指定单位,输出的字段类型为 bigint。
date_parse(string, format) → timestamp
将字符串解析为日期时间值,输出的字段类型为 timestamp。
date_trunc()、date_add()、date_diff()等日期时间函数的 unit 参数可以取:second 秒, minute 分, hour 小时, day 日, week 周, month 月, quarter 季度, year 年,其中 hour day week month 比较常用。
3. 偶尔用的日期时间处理
其他偶尔会用到的还有:hour()、day()、week()、month()、year()、day_of_week() 等。
原创文章,欢迎转载,转载请注明出处并留下原文链接。