Hive中日期與時間戳轉換

2021-08-28 20:17:48 字數 1304 閱讀 5545

1.時間戳轉成日期

select distinct  from_unixtime(1441565203,'yyyy/mm/dd hh:mm:ss') from test_date;
2.日期轉成時間戳

select distinct unix_timestamp('20111207 13:01:03') from test_date; // 預設格式為「yyyy-mm-dd hh:mm:ss「

select distinct unix_timestamp('20111207 13:01:03','yyyymmdd hh:mm:ss') from test_date;

3.yyyymmdd和yyyy-mm-dd日期之間的切換

方法1: from_unixtime+ unix_timestamp

--20181205轉成2018-12-05

select from_unixtime(unix_timestamp('20181205','yyyymmdd'),'yyyy-mm-dd') from dual;

--2018-12-05轉成20181205

select from_unixtime(unix_timestamp('2018-12-05','yyyy-mm-dd'),'yyyymmdd') from dual;

方法2: substr + concat

--20181205轉成2018-12-05

select concat(substr('20181205',1,4),'-',substr('20181205',5,2),'-',substr('20181205',7,2)) from dual;

--2018-12-05轉成20181205

select concat(substr('2018-12-05',1,4),substr('2018-12-05',6,2),substr('2018-12-05',9,2)) from dual;

1.值得注意的是,時間戳有可能是毫秒級的,然後這時候直接使用from_unixtime(1441565203,'yyyy/mm/dd hh:mm:ss')的話就會得到很奇怪的日期了,這時候要這樣from_unixtime(cast(151331629920/1000 as int)),同樣的,時間轉成毫秒級的時間戳也要乘以1000,如:unix_timestamp('2018-12-18 00:38:50')*1000

2.如何區分時間戳是秒級還是毫秒級呢?一般來說,常見的時間戳是10位數的,13位數的時間戳就是毫秒級的

hive中日期與時間戳轉換

從1970 01 01 00 00 00 utc到指定時間的秒數。總結 時間戳到日期時間,日期時間到時間戳,日期時間到日期。獲取時間戳 select distinct unix timestamp from test date 時間戳 日期 select distinct from unixtime...

Hive中日期與時間戳的轉換

什麼是時間戳?時間戳是指 格林尼治時間 1970年01月01日00時00分00秒 北京時間1970年01月01日時00分00秒 起至現在的總秒數。注意 不管你在地球上的任何地方,這一時刻的時間戳是相同的。但是!同乙個時間戳在不同的時區會表示不同的時間。比如在集群上通過hive函式轉換的是北京時間,但...

python 中 日期,時間戳的轉換

一,日期轉換成為時間戳 1,首先需要引入模組,time datetime import time datetime2,把輸入的字元轉換成為陣列 python time strptime 函式根據指定的格式把乙個時間字串解析為時間元組。time.strptime string format tsl 2...