一、Hive日期函數格式
Hive支持多種日期格式,比如yyyy-MM-dd HH:mm:ss、yyyyMMdd、HH:mm:ss等等。你可以在創建表的時候指定日期欄位的格式:
CREATE TABLE logs (
id INT,
date STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
STORED AS TEXTFILE
也可以在查詢時使用date_format函數指定日期格式:
SELECT date_format(date, 'yyyy-MM-dd') FROM logs;
二、Hive日期函數week
week函數返回日期所在的周數(從星期天開始):
SELECT week('2022-07-04');
結果為27
三、Hive日期函數加一天
date_add函數可以將給定日期加上指定的天數:
SELECT date_add('2022-07-04', 1);
結果為'2022-07-05'
四、Hive日期函數統計月份
month函數返回日期所在的月份:
SELECT month('2022-07-04');
結果為7
五、Hive日期函數加一個月
add_months函數可以將給定日期加上指定的月數:
SELECT add_months('2022-07-04', 1);
結果為'2022-08-04'
六、Hive日期函數轉換
unix_timestamp函數可以將日期字元串轉換成unix時間戳,from_unixtime函數可以將unix時間戳轉換成字元串:
SELECT unix_timestamp('2022-07-04 12:34:56');
結果為1656954896
SELECT from_unixtime(1656954896, 'yyyy-MM-dd HH:mm:ss');
結果為'2022-07-04 12:34:56'
七、Hive 日期函數 減一個月
add_months函數也可以將給定日期減去指定的月數(將月數指定為負數):
SELECT add_months('2022-07-04', -1);
結果為'2022-06-04'
八、Hive日期處理函數
datediff函數可以計算兩個日期之間的天數:
SELECT datediff('2022-07-04', '2022-06-04');
結果為30
current_date函數可以返回當前日期:
SELECT current_date();
結果為'2022-08-05'
九、Hive日期相減
可以將日期相減得到相差的天數:
SELECT datediff('2022-07-04', '2022-06-04');
結果為30
十、Hive字元串轉換為日期
可以使用cast函數將字元串轉換為日期類型,前提是字元串的格式必須符合Hive支持的日期格式:
SELECT cast('2022-07-04' as DATE);
結果為'2022-07-04'
綜上所述,Hive提供了多種日期函數,方便對日期進行處理和轉換。在使用時需要注意日期格式和函數的參數類型。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/238596.html