Hive(三)-内置函数-日期函数

Return Type

Name(Signature)

Description

string

from_unixtime(bigint unixtime[, string format])

将时间的秒值转换成format格式(format可为“yyyy-MM-dd hh:mm:ss”,“yyyy-MM-dd hh”,“yyyy-MM-dd hh:mm”等等)

如from_unixtime(1250111000,"yyyy-MM-dd") 得到2009-03-12

bigint

unix_timestamp()

获取本地时区下的时间戳

bigint

unix_timestamp(string date)

将格式为yyyy-MM-dd HH:mm:ss的时间字符串转换成时间戳  

如unix_timestamp('2009-03-20 11:30:01') = 1237573801

bigint

unix_timestamp(string date, string pattern)

将指定时间字符串格式字符串转换成Unix时间戳,如果格式不对返回0 如:unix_timestamp('2009-03-20', 'yyyy-MM-dd') = 1237532400

string

to_date(string timestamp)

返回时间字符串的日期部分

int

year(string date)

返回时间字符串的年份部分

int quarter(date/timestamp/string)

返回当前时间属性哪个季度。 如quarter('2015-04-08') = 2

int

month(string date)

返回时间字符串的月份部分

int

day(string date) dayofmonth(date)

返回时间字符串的天

int

hour(string date)

返回时间字符串的小时

int

minute(string date)

返回时间字符串的分钟

int

second(string date)

返回时间字符串的秒

int

weekofyear(string date)

返回时间字符串位于一年中的第几个周内  

如weekofyear("1970-11-01 00:00:00") = 44, weekofyear("1970-11-01") = 44

int

datediff(string enddate, string startdate)

计算开始时间startdate到结束时间enddate相差的天数

string

date_add(string startdate, int days)

从开始时间startdate加上days

string

date_sub(string startdate, int days)

从开始时间startdate减去days

timestamp

from_utc_timestamp(timestamp, string timezone)

如果给定的时间戳并非UTC,则将其转化成指定的时区下时间戳

timestamp

to_utc_timestamp(timestamp, string timezone)

如果给定的时间戳指定的时区下时间戳,则将其转化成UTC下的时间戳

date current_date

返回当前时间日期

timestamp current_timestamp

返回当前时间戳

string add_months(string start_date, int num_months)

返回当前时间下再增加num_months个月的日期

string last_day(string date)

返回这个月的最后一天的日期,忽略时分秒部分(HH:mm:ss)

string next_day(string start_date, string day_of_week)

返回当前时间的下一个星期X所对应的日期

如:next_day('2015-01-14', 'TU') = 2015-01-20  以2015-01-14为开始时间,其下一个星期二所对应的日期为2015-01-20

string trunc(string date, string format)

返回时间的最开始年份或月份  

如trunc("2016-06-26",“MM”)=2016-06-01  trunc("2016-06-26",“YY”)=2016-01-01   注意所支持的格式为MONTH/MON/MM, YEAR/YYYY/YY

double months_between(date1, date2)

返回date1与date2之间相差的月份,如date1>date2,则返回正,如果date1<date2,则返回负,否则返回0.0  

如:months_between('1997-02-28 10:30:00', '1996-10-30') = 3.94959677  1997-02-28 10:30:00与1996-10-30相差3.94959677个月

string date_format(date/timestamp/string ts, string fmt)

按指定格式返回时间date 如:date_format("2016-06-22","MM-dd")=06-22

猜你喜欢

转载自www.cnblogs.com/sunziying/p/9068829.html