>select current_date from dual; -- 2019-03-15
>select current_timestamp from dual; --2019-03-15 15:47:25
>select dayofmonth(current_date) dual;
>15
>select last_day(current_date) dual;
>2019-03-31
>select date_sub(current_date,dayofmonth(current_date)-1) dual;
>2019-03-01
>select add_months(date_sub(current_date,dayofmonth(current_date)-1),1) dual;
>2019-04-01
>select from_unixtime(unix_timestamp())
>2019-03-15 15:45:56 --通过获取时间戳的形式来获取时间,然后通过函数FROM_UNIXTIME 转化为日期时间格式
>select regexp_replace(to_date(date_sub(from_unixtime(unix_timestamp()),2)),'-','')
>20190313 --返回的是string类型的
>select substr(regexp_replace(to_date(from_unixtime(unix_timestamp())),'-',''),1,6)
>201903 --获取年份类似,截取日期前四位 substr(date,1,4)
1 hive日期增加函数 date_add (例如获取days天之后的日期 )
date_add(string startdate, days)
>select date_add('2019-03-15',1) from dual;
>2019-03-16 00:00:00 --返回 TIMESTAMP型 开始日期startdate增加days天后的日期日期
2 hive日期减少函数 date_sub (获取之前days天的日期)
date_sub (string startdate,days)
>select date_sub('2019-03-15',3) from dual;
>2019-03-12 00:00:00 --返回 TIMESTAMP型 开始日期startdate减少days天后的日期日期
3 hive日期转年函数 year(string date)
>select year('2019-03-15 16:03:01') from dual;
>2019 --返回 int型的日期值
4 hive日期转月函数 month(string date)
>select month('2019-03-15 16:03:01') from dual;
>3 --返回值int型,日期中的月份
5 hive日期转天函数 day(string date)
>select day('2019-03-15 16:03:01') from dual;
>15 --返回值int型,日期所在天
6 hive日期转周函数 weekofyear(string date)
>select weekofyear('2019-03-15 16:03:01') from dual;
>11 --返回值int型,日期所在周
7 hive日期比较函数 datediff(string enddate,string startdate)
>select datediff('2018-12-08','2019-03-15')from dual;
>-97 --返回值int型,结束日期减去开始日期的天数
8 hive日期时间转日期函数 to_date(string timestamp)
>select to_date('2019-03-15 17:17:48') from dual;
>2019-03-15 --返回string型的日期