🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
●▲● **日期转时间戳:`unix_timesttamp`** ```sql --日期转时间戳:从 1970-01-01 00:00:00 UTC 到指定时间的秒数 -- 获得当前时区的 UNIX 时间戳 hive> select unix_timestamp(); 1620957255 hive> select unix_timestamp('2017-09-15 14:23:00'); 1505456580 hive> select unix_timestamp('2017-09-15 14:23:00','yyyy-MM-dd HH:mm:ss'); 1505456580 hive> select unix_timestamp('20170915 14:23:00','yyyyMMdd HH:mm:ss'); 1505456580 ``` ●▲● **时间戳转日期:`from_unixtime`** ```sql hive> select from_unixtime(1505456567); 2017-09-15 14:22:47 hive> select from_unixtime(1505456567,'yyyyMMdd'); 20170915 hive> select from_unixtime(1505456567,'yyyy-MM-dd HH:mm:ss'); 2017-09-15 14:22:47 -- 获取时间戳中的周 hive> select from_unixtime(1505456567,'u'); 5 hive> select from_unixtime(1505456567,'E'); Fri ``` ●▲● **获取当前日期: `current_date()`** ```sql hive> select current_date(); 2021-05-14 ``` ●▲● **从日期时间中提取日期:`to_date(string timestamp)`** ```sql hive> select to_date('2017-09-15 11:12:00'); 2017-09-15 ``` ●▲● **获取日期中的年/月/日/时/分/秒/周** ```sql hive> with dtime as(select from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:mm:ss') as dt) select year(dt) year, month(dt) month, day(dt) day, hour(dt) hour, minute(dt) minute, second(dt) second, weekofyear(dt) weekofyear from dtime; +-------+--------+------+-------+---------+---------+-------------+--+ | year | month | day | hour | minute | second | weekofyear | +-------+--------+------+-------+---------+---------+-------------+--+ | 2021 | 4 | 24 | 4 | 18 | 18 | 16 | +-------+--------+------+-------+---------+---------+-------------+--+ ``` ●▲● **计算两个日期之间的天数: `datediff`** ``` hive> select datediff('2017-09-15','2017-09-01'); ``` ●▲● **日期增加和减少: `date_add/date_sub(string startdate,int days)`** ```sql hive> select date_add('2017-09-15',1); 2017-09-16 hive> select date_sub('2017-09-15',1); 2017-09-14 ``` ●▲● 获取当前系统时间(包括毫秒数) ```sql hive> select current_timestamp; 2021-04-24 04:23:48.175 ``` ●▲● 其他日期函数 ```sql -- 查询当月第几天: hive> select dayofmonth('2021-04-24 04:23:48.175'); 24 -- 月末 hive> select last_day('2021-04-24 04:23:48.175'); 2021-04-30 -- 当月第 1 天 hive> select date_sub('2021-04-24 04:23:48.175',dayofmonth('2021-04-24 04:23:48.175')-1); 2021-04-01 -- 下个月第 1 天 hive> select add_months(date_sub('2021-04-24 04:23:48.175',dayofmonth('2021-04-24 04:23:48.175')-1),1); 2021-05-01 ```