在这里我们介绍下cdh的Impala相关的sql函数,具体如下:
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 | 使用参数计算日期增量值(减少) |
还没有评论,来说两句吧...