hive如何把時分秒時間變成15分鐘切片時間

whisperrr發表於2021-08-19

  1、關鍵函式解釋:

  左補足函式:lpad

  語法: lpad(string str, int len, string pad)

  返回值: string

  說明:將str進行用pad進行左補足到len位

  hive> select lpad('u', 8, 'i love ');

  i love u

  右補足函式:rpad

  語法: rpad(string str, int len, string pad)

  返回值: string

  說明:將str進行用pad進行右補足到len位

  hive> select rpad('i', 8, ' love u');

  i love u 大連無痛人流哪家好  

  向下取整函式: floor

  語法: floor(double a)

  返回值: BIGINT

  說明: 返回等於或者小於該double變數的最大的整數

  hive> select floor(3.1415926);

  3

  hive> select floor(25);

  25

  2、思路解析

  需求:把2021-07-31 09:07:01 這個時間轉換成 202107310900

  或 把2021-07-31 09:17:01 這個時間轉換成 202107310915

  分別利用hour和minute函式得到對應時間的小時和分鐘,再利用以上三個函式進行各種字串轉換。

  hive> select concat('20210731',lpad(hour('2021-07-31 09:07:01'),2,'0'),rpad(15*floor(minute('2021-07-31 09:07:01')/15),2,'0'));

  202107310900

  hive> select concat('20210731',lpad(hour('2021-07-31 09:17:01'),2,'0'),rpad(15*floor(minute('2021-07-31 09:17:01')/15),2,'0'));

  202107310915


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70005147/viewspace-2787836/,如需轉載,請註明出處,否則將追究法律責任。

相關文章