---------------------------------------------hive中時間相關的函式操作------------------
-- 把指定的字串轉時間 -年月(返回值錯誤)
select from_unixtime(unix_timestamp(
'201806'
,'yyyymm'),
'yyyymm');
-- 把指定字串轉時間 -年月日
select from_unixtime(unix_timestamp(
'20180605'
,'yyyymmdd'),
'yyyymmdd');
-- 把指定字串轉時間 -年月,再進行運算,運算結束後再轉回字串年月
select substr(regexp_replace(string(add_months(from_unixtime(unix_timestamp(
'201806'
,'yyyymm'),
'yyyy-mm-dd'),
-2))
,"-",""
),1,
6)----對於yyyy-mm-dd hh:mi:ss格式的string1
使用select from_unixtime(unix_timestamp(string1 ,
'yyyymmdd'),
'yyyymmdd'
) 的查詢結果是錯誤的。
需要使用
select from_unixtime(unix_timestamp(string1 ,
'yyyy-mm-dd'),
'yyyy-mm-dd'
)--- 系統當前時間 (日期格式)
select from_unixtime(unix_timestamp(),
'yyyymm');
select from_unixtime(unix_timestamp(),
'yyyymmdd');
-- 系統當前時間 轉字串
select string(from_unixtime(unix_timestamp(),
'yyyymm'))
;select string(from_unixtime(unix_timestamp(),
'yyyymmdd'))
;---- 系統年月做運算:年-月-日
select add_months(from_unixtime(unix_timestamp(),
'yyyy-mm-dd'),
-2);
--- 20201209
select add_months(from_unixtime(unix_timestamp(),
'yyyymmdd'),
-2);
--- null
-- --系統年月做運算, 得到string型別年月
select substr(regexp_replace(string(add_months(from_unixtime(unix_timestamp(),
'yyyy-mm-dd'),
-2))
,'-',''
),1,
6);-- --系統年月做運算, 得到string型別年月日
select substr(regexp_replace(string(add_months(from_unixtime(unix_timestamp(),
'yyyy-mm-dd'),
-2))
,'-',''
),1,
8);------用系統timestamp得到時間格式-年月
select from_unixtime(unix_timestamp(substr(regexp_replace(string(add_months(from_unixtime(unix_timestamp(),
'yyyy-mm-dd'),
-2))
,'-',''
),1,
6),'yyyymm'),
'yyyymm');
-- 把hive中的timestamp型別變數轉化為字串型別yyyymm變數
select substr(regexp_replace(string(execute_date)
,'-',''
),1,
6)from 使用者名稱.表名;
-- 把hive中的timestamp型別變數轉化為字串型別yyyymmdd變數
select substr(regexp_replace(string(execute_date)
,'-',''
),1,
6)from 使用者名稱.表名;
---- hive 中把timestamp轉化為date
select to_date(execute_date)
from 使用者名稱.表名;
------------
---- 獲取當前日期
select
current_date
;-----獲取當前時間的第二天
select date_add(
current_date,1
);-- 獲取下乙個月
select add_months(
current_date,1
);-- 根據系統日期按日運算yyyymmdd格式的string
select substr(regexp_replace(string(date_add(
current_date,1
)),'-',''
),1,
8);----
hive相關語法與操作
參考 hive操作參考 模板 create database if not exists dw fltdb use dw fltdb drop table if exists dw fltdb.factfltsegordersnap2015 08 create table if not exists...
hive裡面時間相關的函式的操作
show functions看一下,發現還蠻多的,需要注意天月時分秒之類的返回的都是數字,不會自動補0,可以使用lpad補全 year 獲取年 month 獲取月 weekofyear 獲取周 day 獲取日 hour 獲取小時 minute 獲取分鐘 second 獲取秒 datediff a,b...
hive中的時間操作
1.獲取系統當前時間戳 2.將時間戳轉換成時間,並且按照指定的格式進行格式化 3.將日期轉換成時間戳 4.日期時間轉日期函式 to date語法 to date string timestamp 5.獲取時間的年份部分 月份 天 小時 分鐘 select year 2011 12 08 10 03 ...