c++contains函数_Hive函数⼤全(含例⼦)之集合函数、⽇期
函数、条件函数
集合函数 Collection Functions
size(Map)
返回结果:返回Map中的元素个数
返回类型:int
select size(str_to_map('k1: v1')); -- 结果为 1select size(str_to_map('k1:v1,k2:v2')); -- 结果为 2
size(Array)
返回结果:返回Array中的元素个数
返回类型:int
select size(array(1, 2, 3)); -- 结果为 3select size(array('A', 'A')); -- 结果为 2
map_keys(Map)
返回结果:返回⼀个包含Map中所有Key的⽆序数组
返回类型:array
select map_keys(str_to_map('k1:v1')); -- 结果为 ["k1"]select map_keys(str_to_map('k1:v1,k2:v2')); -- 结果为 ["k2","k1"]
map_values(Map)
返回结果:返回⼀个包含Map中所有Value的⽆序数组
返回类型:array
select map_values(str_to_map('k1:v1')); -- 结果为 ["v1"]select map_values(str_to_map('k1:v1,k2:v2')); -- 结果为 ["v2","v1"]
array_contains(Array, value)
返回结果:如果Array中包含value,则返回True,否则返回False
返回类型:boolean
select array_contains(array(1, 2), 3); -- 结果为 falseselect array_contains(array('A', 'B', 'C'), 'A'); -- 结果为 true
sort_array(Array)
返回结果:返回⼀个升序排序的Array
返回类型:array
select sort_array(array(3, 2, 4)); -- 结果为 [2,3,4]select sort_array(array('9', '11', '12')); -- 结果为 ["11","12","9"]
⽇期函数 Date Functions
from_unixtime(bigint unixtime[, string format])
返回结果:将Unix时间戳转换为字符串格式的时间
返回类型:string
select from_unixtime(1586225596, 'yyyy-MM-dd hh:mm:ss'); -- 结果为 2020-04-07 10:13:16select from_unixtime(1586225596, 'yyyyMMdd'); -- 结果为 20200407 unix_timestamp()
返回结果:返回当前Unix是时间戳,精确到秒
返回类型:bigint
select unix_timestamp(); -- 结果为 1586171888
unix_timestamp(string date, string pattern)
返回结果:将字符串格式的时间转换为Unix时间戳格式
返回类型:bigint
select unix_timestamp('2020-01-01 01:01:02', 'yyyy-MM-dd hh:mm:ss'); -- 结果为 1577811662
to_date(string timestamp)
返回结果:返回时间戳的⽇期部分
返回类型:2.1.0之前版本返回的是string,2.1.0版本及之后返回的是date
select to_date('2020-04-05 06:07:08'); -- 结果为 2020-04-05year(string date)
返回结果:返回时间的年部分
返回类型:int
select year('2020-04-05 06:07:08'); -- 结果为 2020
quarter(string date)
返回结果:返回季度
返回类型:int
select quarter('2020-04-05 06:07:08'); -- 结果为 2select quarter(111111); -- 结果为 21111
month(string date)
返回结果:返回时间的⽉部分
返回类型:int
select month('2020-04-05 06:07:08'); -- 结果为 4
day(string date) dayofmonth(date)
返回结果:返回时间的⽇部分
返回类型:int
select day('2020-04-05 06:07:08'); -- 结果为 5select dayofmonth('2020-04-05 06:07:08'); -- 结果为 5 hour(string date)
返回结果:返回时间的⼩时部分
返回类型:int
select hour('2020-04-05 06:07:08'); -- 结果为 6
minute(string date)
返回结果:返回时间的分钟部分
返回类型:int
select minute('2020-04-05 06:07:08'); -- 结果为 7
second(string date)
返回结果:返回时间的秒部分
返回类型:int
select second('2020-04-05 06:07:08'); -- 结果为 8select second('2020-04-05'); -- 结果为 NULL weekofyear(string date)
返回结果:返回date是当年的第⼏个星期
返回类型:int
select weekofyear('2020-01-01 06:07:08'); -- 结果为 1select weekofyear('2020-01-06'); -- 结果为 2 extract(field FROM source)
返回结果:从 source 中检索出指定⽇期部分(如检索出day, dayofweek, hour, minute, month, quarter, second, week and year)
返回类型:int
select extract(day from '2020-04-05 06:07:08'); -- 结果为 5select extract(dayofweek from '2020-04-0
5 06:07:08'); -- 结果为 1(星期天为1)select extract(dayofwee datediff(string enddate, string startdate)
返回结果:返回 enddate 和 startdate 相差的天数
返回类型:int
select datediff('2020-04-06 01:01:01', '2020-04-05 06:07:08'); -- 结果为 1select datediff('2020-04-04', '2020-04-05'); -- 结果为 -1
date_add(date/timestamp/string startdate, tinyint/smallint/int days)
返回结果:返回 startdate 增加 days 天之后的⽇期
返回类型:2.1.0之前版本返回的是string,2.1.0版本及之后返回的是date
select date_add('2020-04-05 06:07:08', 1); -- 结果为 2020-04-06select date_add('2020-04-05 06:07:08', -1); -- 结果为 2020-04-04
date_sub(date/timestamp/string startdate, tinyint/smallint/int days)
返回结果:返回 startdate 减去 days 天之后的⽇期
返回类型:2.1.0之前版本返回的是string,2.1.0版本及之后返回的是date
select date_sub('2020-04-05 06:07:08', 1); -- 结果为 2020-04-04select date_sub('2020-04-05 06:07:08', -1); -- 结果为 2020-04-06
from_utc_timestamp({any primitive type} ts, string timezone)
返回结果:转换为指定时区的时间戳
返回类型:timestamp
select from_utc_timestamp(2592000.0, 'GMT'); -- 结果为 1970-01-31 08:00:00select from_utc_timestamp(2592000000, 'GMT'); -- 结果为 1970-01-31 08:00:00s to_utc_timestamp({any primitive type} ts, string timezone)
unix时间戳转换日期格式返回结果:转换为世界标准时间UTC的时间戳
返回类型:timestamp
select to_utc_timestamp(2592000.0, 'GMT'); -- 结果为 1970-01-31 08:00:00select to_utc_timestamp(2592000000, 'GMT'); -- 结果为 1970-01-31 08:00:00select current_date
返回结果:返回当前⽇期(SQL查询计算开始时的⽇期,⽽不是结束时的⽇期)
返回类型:date
select current_date; -- 结果为 2020-04-06
current_timestamp
返回结果:返回当前时间戳(SQL查询计算开始时的时间,⽽不是结束时的时间)
返回类型:timestamp
select current_timestamp; -- 结果为 2020-04-06 20:09:05.777
add_months(string start_date, int num_months, output_date_format)
返回结果:返回 start_date 增加 num_months ⽉之后的⽇期(可指定输出的⽇期格式)
返回类型:string
select add_months('2020-01-01 01:01:01', 1); -- 结果为 2020-02-01select add_months('2020-01-01 01:01:01', -1, 'yyyyMMddhhmmss'); -- 结果为 20191201010 last_day(string date)
返回结果:返回 date 所属⽉份的最后⼀天
返回类型:string
select last_day('2020-01-01'); -- 结果为 2020-01-31select last_day('2020-02-01'); -- 结果为 2020-02-29
next_day(string start_date, string day_of_week)
返回结果:返回晚于 start_date 的下⼀个星期⼏(day_of_week可以⽤两个字母、三个字母或者英⽂全拼来表⽰)(start_date的时分秒部分
将被忽略)
返回类型:string
select next_day('2020-04-06', 'MON'); -- 结果为 2020-04-13select next_day('2020-04-06', 'TU'); -- 结果为 2020-04-07select next_day('2020-04-06 12:12:12', 'FR trunc(string date, string format)
返回结果:截断⽇期到指定的⽇期精度,仅⽀持⽉(MONTH/MON/MM)或者年(YEAR/YYYY/YY)
返回类型:string
select trunc('2020-04-06', 'YY'); -- 结果为 2020-01-01select trunc('2020-04-06', 'MM'); -- 结果为 2020-04-01select trunc('2020-04-06 12:12:12', 'HH'); -- 结果为months_between(date1, date2)
返回结果:返回 date1 和 date2 的⽉份差
返回类型:double
select months_between('2020-01-31', '2020-02-29'); -- 结果为 -1.0select months_between('2020-01-31', '2020-02-29');
date_format(date/timestamp/string ts, string fmt)
返回结果:格式化⽇期
返回类型:string
select date_format('2020-04-06 12:12:12', 'yyyyMMddhhmmss'); -- 结果为 20200406121212select date_format('2020-04-06 12:12:12', 'yyyy'); -- 结果为 2020se
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论