Hive时间日期使用

hive时间函数

返回类型 函数名 解释 实例
bigint unix_timestamp() 获取当前时间时间戳 hive> select unix_timestamp() from dual;
1539691341
bigint unix_timestamp(string date) 将格式为“yyyy-MM-dd HH:mm:ss”的字符串转成时间戳,如果格式不对返回null

hive> select unix_timestamp('2018-10-16 20:02:21') from dual;

1539691341

bigint unix_timestamp(string date,string pattern) 将指定时间字符串格式转成时间戳,如果格式不对返回null

hive> select unix_timestamp('2018-10-16','yyyy-MM-dd') from dual;

1539619200

hive> select unix_timestamp('20181016','yyyyMMdd') from dual;

1539619200

string from_unixtime(bigint,format) 将时间戳转为format格式,可以为“yyyy-MM-dd HH:mm:ss”,"yyyy-MM-dd HH","yyyy-MM-dd","yyyyMMdd"等

hive> select from_unixtime(1539691341,'yyyy-MM-dd HH:mm:ss') from dual;

2018-10-16 20:02:21

hive> select from_unixtime(1539691341,'yyyy-MM-dd') from dual;

2018-10-16

string to_date(string timestamp) 返回时间字符串的日期部分

hive> select to_date('2018-10-16 20:02:21') from dual;

2018-10-16

int datediff(string enddate,string startdate) 计算两个日期相差的天数

hive> select datediff('2018-10-16','2018-06-08');

130

hive> select datediff('2018-10-16 11:22:00','2018-06-08 22:11:00');

130

hive> select datediff('20181016','20180608');

NULL

string date_add(string startdate,int days) 开始时间加上days

hive> select date_add('2018-10-16',6);

2018-10-22

hive> select date_add('2018-10-16 12:11:22',6);

2018-10-22

hive> select date_add('20181016',6);

NULL

string date_sub(string startdate,int days) 开始时间减去days

hive> select date_sub('2018-10-16',6);

2018-10-10

string current_date 获取当前日期

hive> select current_date from dual;
2018-11-02

hive> select current_date() from dual;
2018-11-02

timestamp current_timestamp 获取当前时间戳

hive> select current_timestamp() from dual;
2018-11-02 20:00:45.348

hive> select current_timestamp from dual;
2018-11-02 20:01:04.789

int

year(string date) 返回日期中的年

hive> select year('2019-07-11');
2019

hive> select year('2019-07-11 10:00:00');

2019

int month(string date) 返回日期中的月

hive> select month('2019-07-11');

7

hive> select month('2019-07-11 10:00:00');

7

int day(string date) 返回日期中的天

hive> select day('2019-07-11');

11

hive> select day('2019-07-11 10:00:00');

11

int hour(string date) 返回日期中的小时

hive> select hour('2019-07-11 10:00:00');

10

hive> select hour('2019-07-11');

NULL

int minute(string date) 返回日期中的分钟

hive> select minute('2019-07-11 10:20:30');

20

hive> select minute('10:20:30');

20

int second(string date) 返回日期中的秒

hive> select second('2019-07-11 10:20:30');

30

hive> select second('10:20:30');

30

int weekofyear(string date) 返回日期当前周数

hive> select weekofyear('2019-07-11 10:20:30');

28

int .. 返回星期几(网上大神写的)

hive> select if(pmod(datediff(current_date, '1920-01-01') - 3, 7)='0',7,pmod(datediff(current_date, '1920-01-01') - 3, 7));

3

       

 

你可能感兴趣的:(Hive)