hive获取月份_【Hive】Hive中常用日期函数整理
前言
? ? ?使用hive進行時間處理的過程中,有時忘記一些常用的函數用法,現整理一下hive中常用日期函數,當做備忘錄使用,忘記來翻閱一下。
1 時間戳轉化日期函數
? ? 時間戳必須是10位,默認情況下轉化為'yyyy-MM-dd HH:mm:ss'格式日期,若需要轉化其他格式日期,需要說明轉化日期格式。
select from_unixtime('1566390082'), from_unixtime('1566390082', 'yyyy-MM-dd'), from_unixtime('1566390082', 'yyyyMMdd')2019-08-21?20:21:22??2019-08-21??201908212 日期轉化為時間戳函數
? ? ??默認情況下要求日期格式為'yyyy-MM-dd HH:mm:ss',其他格式日期需要說明日期格式,不然結果為NULL
select?unix_timestamp('2019-08-21?20:21:22'),??---日期格式為默認格式unix_timestamp('2019-08-21'),?---日期格式不滿足'yyyy-MM-dd HH:mm:ss',沒有指定日期格式,出錯unix_timestamp('2019-08-21',?'yyyy-MM-dd')1566390082??NULL??15663168003 日期格式化函數
? ? date_format函數將字符串或者日期轉化為指定格式的日期, to_date函數直接將長日期轉化為短日期
select date_format('2019-08-21 20:21:22', 'yyyy-MM-dd'), date_format('2019-08-21?20:21:22',?'yyyyMMdd')2019-08-21??20190821select to_date('2019-08-21 20:21:22'), to_date('2019-08-21?20:21')2019-08-21??2019-08-214 獲取年、月、日、天、小時、分鐘、秒、周數、星期幾、季節函數
select year('2019-08-21 20:21:22'), --年month('2019-08-21 20:21:22'),--月day('2019-08-21 20:21:22'),--日hour('2019-08-21 20:21:22'),--小時minute('2019-08-21 20:21:22'),--分鐘second('2019-08-21 20:21:22'),--秒weekofyear('2019-08-21 20:21:22'),--第幾周dayofweek('2019-08-21 20:21:22'),--星期幾ceil(month('2019-08-21 20:21:22')/3)--季節2019??8??21??20??21??22??34??4??35?日期(月份)增減函數
? ? 日期往后推幾天,使用date_add函數,日期往前推幾天,使用date_sub函數;
? ? 月份往后推幾個月,使用add_months函數,參數為正數;月份往前推幾個月,參數為負數;
select date_add('2019-08-21',10), date_sub('2019-08-21',10), add_months('2019-08-21',1), add_months('2019-08-21',2), add_months('2019-08-21',-1), add_months('2019-08-21',-2)2019-08-31 2019-08-11 2019-09-21 2019-10-21 2019-07-21 2019-06-216 兩個日期(月份)相減函數
? ? 日期相減使用date_diff函數,返回相差天數,月份相減使用months_between,返回相差月份,不足月為小數
select datediff('2019-08-23', '2019-08-21'), months_between('2019-08-21', '2019-07-25')2??0.87096774若計算兩個之間相差的小時數,可以使用:
select?hour('2019-08-23?10:11:12')-hour('2019-08-21?12:20:20')?+?(datediff('2019-08-23?10:11:12','2019-08-21?12:20:20'))*24467 獲取月初(月末)、年初(年末)日期
? ? 獲取月末日期使用last_day函數,獲取月初日期使用trunc(,'MM')函數;獲取年初日期使用trunc(,‘YY’)函數,使用date_sub(add_months(trunc('', 'YY'),12),1)獲取年末日期
select last_day('2019-08-12'), --月末trunc('2019-08-21', 'MM'), --月初trunc('2019-08-21', 'YY'), --年初date_sub(add_months(trunc('2019-08-21', 'YY'),12),1) --年末2019-08-31 2019-08-01 2019-01-01 2019-12-318 獲取日期的下個星期幾的日期
? ? 使用函數next_day獲取日期下個星期幾的日期,參數周一:MO;周二:TU;周三:WE ;周四:TH ;周五:FR ;周六:SA;周日SU
select next_day('2019-08-21',?'MO'),?next_day('2019-08-21', 'TU'),next_day('2019-08-21', 'WE'),next_day('2019-08-21', 'TH'),next_day('2019-08-21', 'FR'),next_day('2019-08-21', 'SA'),next_day('2019-08-21', 'SU')2019-08-26 2019-08-27 2019-08-28 2019-08-22 2019-08-23 2019-08-24 2019-08-25 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的hive获取月份_【Hive】Hive中常用日期函数整理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 时序数据库连载系列: 时序数据库一哥In
- 下一篇: cesium three性能比较_map