一、Hive時間函數轉化
Hive時間數據類型有:date、timestamp、interval。date和timestamp類型可以互相轉化,但interval不能轉化為date類型。轉換函數如下:
SELECT to_date('2022-01-01'); SELECT to_timestamp('2022-01-01 12:34:56'); SELECT to_utc_timestamp('2022-01-01 12:34:56', 'US/Pacific');
to_date函數將字元串轉換為date類型,to_timestamp函數將字元串轉換為timestamp類型,to_utc_timestamp將本地時間轉換為UTC時間。另外,可以使用from_unixtime函數將Unix時間戳轉換為timestamp類型。
二、Hive時間加減函數分鐘
Hive提供了很多時間加減函數,最常用的是minute函數,用於將指定時間加上指定分鐘數或減去指定分鐘數。例如:
SELECT date_add('2022-01-01', 3); -- 將日期加上3天 SELECT date_sub('2022-01-01', 3); -- 將日期減去3天 SELECT add_months('2022-01-01', -6); -- 將日期減去6個月 SELECT minute('2022-01-01 12:34:56') + 10; -- 將時間加上10分鐘 SELECT minute('2022-01-01 12:34:56') - 10; -- 將時間減去10分鐘
三、Hive時間函數轉換
除了to_date和to_timestamp函數外,Hive還提供了其他的時間類型轉換函數,用於將日期/時間轉換為指定格式的字元串或數值。
SELECT from_unixtime(unix_timestamp(), 'yyyy-MM-dd HH:mm:ss.SSS'); -- 當前時間的字元串表示 SELECT unix_timestamp('2022-01-01 12:34:56') * 1000; -- 時間轉換為數值表示
其中unix_timestamp函數將日期/時間字元串轉換為Unix時間戳,from_unixtime函數將Unix時間戳轉換為字元串。
四、Hive時間函數hh:mm:ss:ddd
在Hive中表示時間戳的格式為yyyy-MM-dd HH:mm:ss.SSS,其中HH表示小時數,範圍是00-23。如果需要將小時以hh:mm:ss.ddd格式輸出,則可以使用date_format函數,例如:
SELECT date_format('2022-01-01 12:34:56.789', 'hh:mm:ss.SSS');
此時的輸出為12:34:56.789。
五、Hive時間函數時間差
Hive提供了幾個函數,可以用於計算日期/時間之間的差值,如datediff、months_between和unix_timestamp等函數。例如,計算兩個時間戳之間的秒數差:
SELECT UNIX_TIMESTAMP('2022-01-01 12:34:56.789') - UNIX_TIMESTAMP('2022-01-01 12:34:50.123');
輸出結果為6.666。
六、Hive時間函數前一小時
如果需要獲取當前時間的前一小時,可以使用date_sub和from_unixtime函數,例如:
SELECT from_unixtime(unix_timestamp(date_sub('2022-01-01 12:34:56', 1), 'yyyy-MM-dd HH'), 'yyyy-MM-dd HH:00:00');
此時的輸出為2022-01-01 11:00:00。
七、Hive時間函數減去6個月
如果需要獲取當前時間減去6個月的時間,則可以使用add_months函數。例如:
SELECT add_months(from_unixtime(unix_timestamp(), 'yyyy-MM-dd'), -6);
此時的輸出為2021-07-03。
八、Hive時間函數add
add函數可以對日期/時間進行加減運算,比如:
SELECT add('2022-01-01', 3); SELECT add('2022-01-01 12:34:56', 10, 'minute');
第一個例子將日期加上3天,第二個例子將時間加上10分鐘。
九、Hive if函數
if函數與其他語言中的if語句類似,可以根據條件返回不同的值,如:
SELECT IF(1<2, 'true', 'false'); SELECT IFNULL(NULL, 'default');
第一個例子返回true,第二個例子返回default。
十、Hive的trunc函數
trunc函數用於截斷日期/時間,例如:
SELECT trunc('2022-01-01 12:34:56', 'HH');
此時輸出為2022-01-01 12:00:00。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/285513.html