国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Hive常見時間日期函數(shù)的使用與問題整理

這篇具有很好參考價值的文章主要介紹了Hive常見時間日期函數(shù)的使用與問題整理。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

這里整理一下Hive常見的時間函數(shù)和日期函數(shù)和用法,作為平時數(shù)據(jù)處理過程的一個檢索和記錄。

平時在數(shù)據(jù)處理過程中,如果不經常使用時間函數(shù),一時間遇到一些時間上的處理,難免會想不起來。

hive本身提供的時間函數(shù)已經很豐富了,基本上能滿足我們所有的需求,一些特殊需求也可以通過增加一些數(shù)學邏輯實現(xiàn)出來。

接下來看一下類別的日期和時間函數(shù)的使用方式。

1.時間戳和日期相互轉換函數(shù)

具體執(zhí)行結果在后面?zhèn)渥俗⒊鰜?。主要為時間戳轉換為日期函數(shù),和將日期轉換為時間戳函數(shù)

-- 1.時間戳轉化為日期函數(shù)
-- from_unixtime(bigint unixtime[, string format]) 其中第一個參數(shù)必須為bigint類型
select from_unixtime(1661084482)		-- 2022-08-21 20:21:22  
select from_unixtime(1661084482, 'yyyy-MM-dd')  -- 2022-08-21  
select from_unixtime(1661084482, 'yyyyMMdd') 	-- 20220821
select from_unixtime(1661084482,'yyyy-MM-dd HH:mm:ss')		-- 2022-08-21 20:21:22  

-- 2.將日期轉換為時間戳
select unix_timestamp('2022-08-21 20:21:22')		-- 1661084482  
select unix_timestamp('20220821','yyyyMMdd')	-- 1661011200
select unix_timestamp('2022-08-21', 'yyyy-MM-dd')	-- 1661011200

2.獲取當前天的相關函數(shù)

獲取當天時間的三種方式,注意格式,其中current_timestamp返回的時間為UTC時間。

-- 返回當天三種方式,格式有一定的不同
select current_date 	-- 2023-06-14
select current_timestamp 	-- 返回時分秒 2023-06-14 07:56:14.28
select from_unixtime(unix_timestamp()) 		-- 2023-06-14 15:56:14

3.日期格式化函數(shù)

日期格式化函數(shù),需要什么格式,后面寫什么格式的日期字符串描述,to_date僅有一種格式返回結果

-- 需要什么格式,后面寫什么格式的日期字符串描述
select date_format('2022-08-21 20:21:22', 'yyyy-MM-dd')	-- 2022-08-21  
select date_format('2022-08-21 20:21:22', 'yyyyMMdd')		-- 20220821
select date_format('2022-08-21', 'yyyy-MM-dd HH:mm:ss') -- 2022-08-21 00:00:00

-- 獲取時間日期的日期部分
select to_date('2022-08-21 20:21:22')		-- 2022-08-21

4.獲取年、月、日、天、小時、分鐘、秒、周數(shù)、星期幾、季節(jié)函數(shù)

hive提供了靈活獲取年、月、日、天、小時、分鐘、秒、周數(shù)、星期幾、季節(jié)的函數(shù),最后面還提供了一個通過數(shù)學函數(shù)轉換獲取季度的邏輯,可以看出其實部分函數(shù)如果版本不支持,我們可以通過其他方式曲線獲取。當然,不提倡,可讀性差。

-- 獲取年
select year('2022-08-21 20:21:22')		-- 2022
-- 獲取月
select month('2022-08-21 20:21:22')		-- 8
-- 獲取當前天
select day('2022-08-21 20:21:22')			-- 21
-- 每月第幾天,同day()
select dayofmonth('2022-08-21 20:21:22')		-- 21
-- 獲取當前小時
select hour('2022-08-21 20:21:22')			-- 20
-- 獲取當前分鐘
select minute('2022-08-21 20:21:22')		-- 21
-- 獲取當前秒
select second('2022-08-21 20:21:22') 		-- 22
-- 活躍當前日期是本年第幾周
select weekofyear('2022-08-21 20:21:22')		-- 31
-- 獲取當前天是本周第幾天,計算日歷是從星期天為本周第一天開始計算。如果想要計算星期1為第一天,可以在當前天加1天再去計算。
select dayofweek('2022-08-21 20:21:22')		-- 1
-- 獲取當前日期是第幾季度
select quarter('2022-08-21 20:21:22')		-- 3

-- 如果有hive因版本不支持部分函數(shù),可以通過數(shù)學轉換計算,例如當前是第幾季度。
select ceil(month('2022-08-21 20:21:22')/3)	-- 季節(jié) 3 數(shù)學轉換

5.日期和月份的加減相關函數(shù)

獲取日期和月份的加減操作,靈活處理日期和月份增加減少,日期月份之間互相求差值。

-- 日期增加日
select date_add('2022-08-21',10) -- 增加日	2022-08-31
-- 日期減少日
select date_sub('2022-08-21',10) -- 減少日	 2022-08-11
-- 月增加
select add_months('2022-08-21',2) -- 增加月 	2022-10-21
-- 月減少
select add_months('2022-08-21',-1) -- 減少月	2022-07-21

-- 兩個日期相減函數(shù)
select datediff('2022-08-23', '2022-08-21')	-- 2
-- 兩個月份相減
select months_between('2022-08-21', '2022-07-25')	-- 0.871

6.獲取一些指定特殊日期的函數(shù)

主要是獲取指定日期的月初(月末)、年初(年末)日期和獲取指定日期的下個星期幾的日期

-- 獲取指定日期的月初(月末)、年初(年末)日期
select last_day('2023-06-13')  -- 月末	2023-06-30
select trunc('2023-06-13', 'MM')  -- 月初	2023-06-01
select trunc('2023-06-13', 'YY')  -- 年初	2023-01-01
select date_sub(add_months(trunc('2023-06-13', 'YY'),12),1) -- 年末	2023-12-31

-- 獲取指定日期的下個星期幾的日期
select next_day('2023-06-13', 'MO')    -- 2023-06-19
select next_day('2023-06-13', 'TU')    -- 2023-06-20
select next_day('2023-06-13', 'WE')    -- 2023-06-14
select next_day('2023-06-13', 'TH')    -- 2023-06-15
select next_day('2023-06-13', 'FR')    -- 2023-06-16
select next_day('2023-06-13', 'SA')    -- 2023-06-17
select next_day('2023-06-13', 'SU')    -- 2023-06-18

7.時區(qū)轉換函數(shù)操作

時區(qū)轉換函數(shù)有很多需要注意的點,其也可以聯(lián)合使用,簡單說一下時區(qū),UTC是世界標準時間。

東一區(qū) GMT+1,東八區(qū)GMT+8以此類推,西一區(qū)GMT-1,西七區(qū)GMT-7以此類推。

時間戳沒有時區(qū)屬性,同一時刻時間戳一致。

-- 將utc時間轉換為東八區(qū)時間。輸入為utc時間字符串,結果為東八區(qū)時間字符串
select from_utc_timestamp('2023-06-14 15:56:14','GMT+8')		-- 2023-06-14 23:56:14

-- 將utc時間戳轉換為東八區(qū)時間,輸入為utc時間戳,結果為東八區(qū)時間字符串,時間戳沒有時區(qū)屬性,同一時刻時間戳一致
select from_utc_timestamp(cast(1686729374000 as bigint),'GMT+8')		-- 2023-06-14 15:56:14
-- 將指定時區(qū)時間轉換成utc時間
select to_utc_timestamp('2023-06-14 15:56:14','GMT+8')		-- 2023-06-14 07:56:14
-- 將指定時區(qū)時間的時間戳轉換成utc時間(這種使用方式不常見,是錯誤的,只是在某些時刻進行數(shù)據(jù)轉換用,不建議使用)
select to_utc_timestamp(cast(1686729374000 as bigint),'GMT+8')	-- 2023-06-13 23:56:14
-- 正確的轉換時間戳為utc時間的方式
select to_utc_timestamp(cast(1686729374000 as bigint),'UTC')

以上內容為日期時間函數(shù)的常見使用方法及注意事項,有需要可以收藏。

一些函數(shù)可以搭配使用,滿足生產環(huán)境中的時間需求。

下一期:HiveSQL在使用聚合類函數(shù)的時候性能分析和解讀

按例,歡迎點擊此處關注我的個人公眾號,交流更多知識。

后臺回復關鍵字 hive,隨機贈送一本魯邊備注版珍藏大數(shù)據(jù)書籍。文章來源地址http://www.zghlxwxcb.cn/news/detail-482424.html

到了這里,關于Hive常見時間日期函數(shù)的使用與問題整理的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Hive時間日期函數(shù)一文詳解+代碼實例

    Hive時間日期函數(shù)一文詳解+代碼實例

    目錄 前言 一、HiveSQL運行過程 二、Hive時間函數(shù) 1.獲取當前時間 1.current_date() 2. current_timestamp() 3. unix_timestamp() 2.獲取指定時間維度 1. year() 2.quarter() 3.month() 4.day() 5.hour() 6.minute() 7.second 8.weekofyear() 9. dayofweek() ?10.last_day() ?11.next_day() 12.trunc() ?3.時間格式轉換 ?1.to_date() 2. from_un

    2024年02月02日
    瀏覽(21)
  • 【hive】時間相關函數(shù)的使用(時間戳函數(shù)unix_timestamp()/from_unixtime()、日期處理函數(shù)datediff()/date_sub()/date_add()等)

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 unix_timestamp() 無參數(shù)調用,獲取當前系統(tǒng)時間戳為10位的bigint類型數(shù)值,該數(shù)值只精確到秒。 unix_timestamp(string timestamp) 輸入格式默認為“yyyy-MM-dd HH:mm:ss”,如不符合則返回null。 unix_timestamp(string date,str

    2024年02月08日
    瀏覽(21)
  • mysql常見時間函數(shù), 獲取日期對應的年、月、日、星期、周、季度、時、分、秒函數(shù)、加減、日期都有

    ?獲取日期對應的年、月、日、星期、季度、時、分、秒函數(shù)、日期為當年的第幾天函數(shù)都有 1、NOW(),用于獲取當前日期和時間函數(shù) select now()? 返回:2023-05-18 10:58:06 2、CURDATE(),用于獲取當前日期,同CURRENT_DATE() select curdate()? 返回:2023-05-18 3、CURTIME(),用于獲取當前時間,

    2024年02月15日
    瀏覽(47)
  • MySQL(七)-日期和時間函數(shù)的使用解析

    MySQL(七)-日期和時間函數(shù)的使用解析

    日期和時間函數(shù)主要用來處理日期和時間值,一般的日期函數(shù)除了使用 DATE 類型的參數(shù)外也可以使用 DATETIME 或者 TIMESTAMP 類型的參數(shù),但會忽略這些值的時間部分。相同的,以TIME 類型值為參數(shù)的函數(shù),可以接受 TIMESTAMP 類型的參數(shù),但會忽略日期部分,許多日期函數(shù)可以同時

    2024年02月01日
    瀏覽(22)
  • Hive學習(12)Hive常用日期函數(shù)

    1、hive返回當天三種方式 2、from_unixtime:轉化unix時間戳到當前時區(qū)的時間格式 3、unix_timestamp:獲取當前unix時間戳 4、year:返回日期中的年 5、month:返回日期中的月份 6、day:返回日期中的天 7、hour:返回日期中的小時 8、minute:返回日期中的分鐘 9、second:返回日期中的秒

    2024年02月11日
    瀏覽(23)
  • Hive使用中常見的問題及解決方法

    ????????Hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,可以將結構化的數(shù)據(jù)文件映射為一張表,并提供SQL查詢功能。在工作中大部分場景都會用到,下面列出幾個 hive 使用中常見的問題及解決方法。 1)Hive 默認的輸入格式處理是CombineHiveInputFormat,會對小文件進行合并 hive (default

    2024年02月10日
    瀏覽(18)
  • Hive日期函數(shù)詳細講解

    Hive 提供了一系列的內建日期函數(shù),用于處理日期和時間數(shù)據(jù)。以下是您提到的日期函數(shù)的詳細講解,包括案例和使用注意事項: FROM_UNIXTIME() 功能 :將 Unix 時間戳(秒為單位)轉換為日期時間格式。 語法 : FROM_UNIXTIME(unix_timestamp[, format]) 案例 : SELECT FROM_UNIXTIME(1609459200); ?

    2024年01月20日
    瀏覽(25)
  • Hive常用的日期函數(shù)

    注意: current_timestamp() 獲取的時UTC默認時區(qū)。 給定一個時間戳可基于 from_utc_timestamp/to_utc_timestamp 進行轉換。 注意: nbsp;nbsp; 如果當前年的第一個周,天數(shù)超過3天,那就是當前年的第一周; nbsp;nbsp; 如果當前年的第一個周,天數(shù)小于等于3天,那就是上一年的最后一周。 wee

    2024年02月07日
    瀏覽(19)
  • Java:日期毫秒值和常見日期時間格式相互轉換

    本文介紹了Java中,日期毫秒值和常見日期格式相互轉換。 提示:以下是本篇文章正文內容,下面案例可供參考 代碼示例: 代碼示例: 如果想將指定時間轉換為毫秒值,相對比較麻煩,這里提供兩種方法供參考 利用Calendar.set() 利用DateFormat.parse() 本文介紹了Java中如何將毫秒

    2024年02月16日
    瀏覽(44)
  • spark SQL 怎么將一個時間戳字符串轉換成hive支持的時間日期類型?

    在 Spark SQL 中,可以使用 to_timestamp 函數(shù)將一個時間戳字符串轉換成 Hive 支持的時間日期類型。這個函數(shù)的語法如下: 其中,timestampStr 表示要轉換的時間戳字符串,format 表示時間戳字符串的格式,格式必須與時間戳字符串的實際格式相匹配。如果不指定格式,Spark 會使用默認

    2024年02月11日
    瀏覽(51)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包