暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Impala(时间处理)

原创 超越无限D 2022-09-20
4031

Impala(时间处理,可类比到hive可用)

1. 获取当前时间

timestamp 样式2021-12-10 04:36:48.147046000

bigint 样式 1639110956

函数/方法 输出类型 说明/样式
current_timestamp() timestamp 所在时区的当前时间
now() timestamp 所在时区的当前时间
unix_timestamp() bigint 所在时区的当前时间戳
utc_timestamp timestamp UTC时区的当前时间
timeofday() string Fri Dec 10 12:39:46 2021 CST

2. 获取时间指定单位函数

序号 函数/方法 输出类型 说明/样式
1 year(timestamp/date) int 获取年 yyyy
2 quarter(timestamp/date) int 获取季节(1,2,3,4)
3 month(timestamp/date) int 获取月
4 monthname(timestamp/date) string 获取月份名称 December
5 week(timestamp/date) int 获取周(1-53)
6 weekofyear(timestamp/date) int 获取周(1-53)
7 dayofweek(timestamp/date) int 获取天(本周第多少天,周日算第一天)
8 dayname(timestamp/date) string 获取天(星期几)Friday
9 next_day(timestamp/date, 10 day(string)) timestamp/date
11 day(timestamp/date) int 获取天(本月第多少天)
12 dayofmonth(timestamp/date) int 获取天(本月第多少天)
13 last_day(timestamp/date) timestamp/date 获取天(本月的最后一天日期)
14 dayofyear(timestamp/date) int 获取天(本年第多少天)
15 hour(timestamp/date) int 获取小时
16 minute(timestamp date) int 获取分钟
17 second(timestamp date) int 获取秒
18 millisecond(timestamp date) int 获取毫秒
19 extract (YEAR FROM timestamp) bigint 获取参数指定的时间单位 YEAR MONTH DAY HOUR MINUTE SECOND
20 date_part(‘year’,timestamp) bigint 获取参数指定的时间单位 YEAR MONTH DAY HOUR MINUTE SECOND
21 trunc(timestamp/date,unit) timestamp/date 获取截断为指定单位的时间
unit 截取说明
SYYYY,YYYY,YEAR,SYEAR,YYY,YY,Y
Q 季节
MONTH,MON,MM,RM
WW 最近的日期是与一年中的第一天相同的日期
W 最近的日期是与该月的第一天相同的星期几
DDD,DD,J
DAY,DY,D 星期几(星期一)的开始
HH,HH12,HH24 小时
MI 分钟

3. 时间比较函数

序号 函数/方法 输出类型 说明/样式
1 datediff(timestamp enddate,startdate) int 返回endDate比startDate多多少天
2 int_months_between(timestamp t1,t2) int 返回两个日期相差的整数月份个数
3 months_between(timestamp t1,t2) double 返回浮点数的月数相差的数
4 date_cmp(DATE date1, DATE date2) int 比较是否相等,返回-1,0,1,null四种数值
5 timestamp_cmp(timestamp t1,timestamp t2) int 比较是否相等,返回-1,0,1,null四种数值

4. 时间格式转换函数

序号 函数/方法 输出类型 说明/样式
1 to_date(timestamp date) string 返回时间戳对应的date
2 to_timestamp(bigint unixtime) timestamp 返回整数对应的timestamp值
3 to_timestamp(string date,string pattern) timestamp 返回字符串对应的timestamp值
4 to_utc_timestamp(timestamp t,string timezone) timestamp 指定时区的时间戳转化为UTC时区的时间戳
5 from_timestamp(timestamp t,string pattern) string 把timestamp按照pattern进行格式化
6 from_timestamp(string date,string pattern) string 把date按照pattern进行格式化
7 from_unixtime(bigint unixtime) string 把时间戳秒数转化为本地地区中的字符串
8 from_unixtime(bigint unixtime,string pattern) string 时间戳转化为本地时区字符串,pattern格式
9 from_utc_timestamp(timestamp t,string timezone) timestamp UTC时区指定时间戳转化为指定时区时间戳
10 unix_timestamp(string datetime) bigint 把string类型的date或日期转化成时间戳Unix
11 unix_timestamp(timestamp datetime) bigint 把string类型的timestamp转化成时间戳Unix
12 unix_timestamp(string datetime,string pattern) bigint 日期按pattern转化成时间戳Unix

5. 时间计算函数

序号 函数/方法 输出类型 说明/样式
1 years_add(timestamp/date date, int/bigint years) timestamp/date 增加指定年数
2 years_sub(timestamp/date date, int/bigint years) timestamp/date 减少指定年数
3 months_add(timestamp/date date, int/bigint months) timestamp/date 增加指定月数
4 months_sub(timestamp/date date, int/bigint months) timestamp/date 减少指定月数
5 add_months(timestamp/date date, int/bigint months) timestamp/date 增加指定月数
6 weeks_add(timestamp/date date, int/bigint weeks) timestamp/date 增加指定周数
7 weeks_sub(timestamp/date date, int/bigint weeks) timestamp/date 减少指定周数
8 days_add(timestamp/date startdate, int/bigint days) timestamp/date 增加指定天数
9 days_sub(timestamp/date startdate, int/bigint days) timestamp/date 减少指定天数
10 date_add(timestamp/date startdate, int/bigint days) timestamp/date 增加指定天数
11 date_sub(timestamp/date startdate, int/bigint days) timestamp/date 减少指定天数
12 adddate(timestamp/date startdate, int/int days) timestamp/date 增加指定天数
13 subdate(timestamp/date startdate,bigint/int days) timestamp/date 减少指定天数
14 hours_add(timestamp date, int/bigint hours) timestamp 增加指定小时
15 hours_sub(timestamp date, int/bigint hours) timestamp 减少指定小时
16 minutes_add(timestamp date, int/bigint minutes) timestamp 增加指定分钟
17 minutes_sub(timestamp date, int/bigint minutes) timestamp 减少指定分钟
18 seconds_add(timestamp date, int/bigint seconds) timestamp 增加指定秒数
19 seconds_sub(timestamp date, int/bigint seconds) timestamp 减少指定秒数
20 milliseconds_add(timestamp t, int/bigint s) timestamp 增加指定毫秒数
21 milliseconds_sub(timestamp t, int/bigint s) timestamp 减少指定毫秒数
22 microseconds_add(timestamp t, int/bigint s) timestamp 增加指定微秒数
23 microseconds_sub(timestamp t, int/bigint s) timestamp 减少指定微秒数
24 nanoseconds_add(timestamp t, int/bigint s) timestamp 增加指定纳秒数
25 nanoseconds_sub(timestamp t, int/bigint s) timestamp 减少指定纳秒数
26 date_add(timestamp/date startdate, interval_expression) timestamp/date 使用参数计算日期增量值(增加)
27 date_sub(timestamp/date startdate, interval_expression) timestamp/date 使用参数计算日期增量值(减少)

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论