當前位置:首頁 » 編程語言 » sqlhive日期格式
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sqlhive日期格式

發布時間: 2022-08-23 23:10:26

sql中如何將數字型轉換為日期型

平時為了方便存儲和查詢,通常會選擇將時間存儲為毫秒或者秒的形式。但是頁面顯示的時候很不直觀,需要將整型數字轉化成日期格式,轉化方式包括下面幾種:

1、秒數與Date之間的轉換:select from_unixtime(1388776825);

如果想逆向轉換,可以通過unix_timestamp()函數反向轉換。用法如下:

SELECT UNIX_TIMESTAMP() ;//獲取當前時間的秒數

SELECT UNIX_TIMESTAMP('2014-03-23 10:10:40') ; //獲取指定日期格式的秒數

SELECT UNIX_TIMESTAMP('2014-03-23') ; //獲取指定日期格式的秒數

(1)sqlhive日期格式擴展閱讀:

一、date型換int型

SELECT UNIX_TIMESTAMP(『2017-9-22 13:54:45』)

二、int型轉date型

SELECT FROM_UNIXTIME(1506059685)

需要注意的是,一個int值轉換為DateTime 需要從1970年1月1日0點0分0秒開始,但是必須明確,這個時間是標准時間,而不是北京時間。

資料庫中數據的時間都是以標准時間為准繩的。所以必須轉換到當前時間, 中國是+8 ,可以簡單的調用ToLocalTime達到效果。

② Hive 中如何實現日期格式判斷

判斷首先要識別,要會轉換:
系統時間:from_unixtime(unix_timestamp() ,'yyyy-MM-dd HH:mm:ss') as ins_date
固定日期轉換成時間戳
select unix_timestamp('2016-08-16','yyyy-MM-dd') --1471276800
select unix_timestamp('20160816','yyyyMMdd') --1471276800
select unix_timestamp('2016-08-16T10:02:41Z', "yyyy-MM-dd'T'HH:mm:ss'Z'") --1471312961
時間戳轉換程固定日期
select from_unixtime(1471276800,'yyyy-MM-dd') --2016-08-16
select from_unixtime(1471276800,'yyyyMMdd') --20160816
select from_unixtime(1471312961) -- 2016-08-16 10:02:41
select from_unixtime( unix_timestamp('20160816','yyyyMMdd'),'yyyy-MM-dd') --2016-08-16
select date_format('2016-08-16','yyyyMMdd') --20160816
返回日期時間欄位中的日期部分
select to_date('2016-08-16 10:03:01') --2016-08-16
返回日期中的年
select year('2016-08-16 10:03:01') --2016
返回日期中的月
select month('2016-08-16 10:03:01') --8
返回日期中的日
select day('2016-08-16 10:03:01') --16
返回日期中的時
select hour('2016-08-16 10:03:01') --10
返回日期中的分
select minute('2016-08-16 10:03:01') --3
返回日期中的秒
select second('2016-08-16 10:03:01') --1
返回日期在當前的周數
select weekofyear('2016-08-16 10:03:01') --33
返回結束日期減去開始日期的天數
select datediff('2016-08-16','2016-08-11')
返回開始日期startdate增加days天後的日期
select date_add('2016-08-16',10)
返回開始日期startdate減少days天後的日期
select date_sub('2016-08-16',10)
返回當月的第一天
select trunc('2016-08-16','MM') --2016-08-01
select trunc('2016-08-16','YEAR') --2016-01-01

③ 在sql中如何將日期類型轉換成文本類型,例如2012-09-12 轉變成 20120912

類型轉換:convert(要轉換成的數據類型,欄位名稱)
例如convert(varchar(100),col_name)
Convert(int,Order_no)
日期格式轉換:
Select CONVERT(varchar(100), GETDATE(), 112): 20060516

Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006

④ SQL語句查詢特定時間段的數據怎麼寫

SQL伺服器:

Select*fromtablewhere'2008-7-1'和'2008-12-31'

訪問

從表中選擇發生日期>#2008-7-1#和發生日期<#2008-12-31#

就是這樣:注意,SQLserver中的日期和訪問有一點不同。

(4)sqlhive日期格式擴展閱讀:

SQL查詢日期語句

Select*fromShopOrderwheredatediff(week,ordTime,getdate()-1)=0//查詢第一年的日期

Select*fromShopOrder,其中datediff(day,ordTime,getdate()-1)=0//查詢當天的所有數據

SELECT * FROM A where datediff(d,datetime,getdate()) <=30 //前30天

SELECT * FROM A WHERE DATEDIFF(m, shijian, GETDATE()) <=1 //上個月

搜索當天記錄的其他方法:

SELECT*

FROMj_GradeShop

其中(GAddTimeBETWEENCONVERT(datetime,LEFT(GETDATE(),10)+'00:00:00.000'))

並轉換(datetime,LEFT(GETDATE(),10)+'00:00:00.00.000')+1)

由GAddTime指定的訂單

⑤ 在Hive中,如何將string 類的 時間戳,轉換成日期

from_unixtime(bigint unixtime[, string format])轉換成日期格式,如果需要制定是日期可以在這個基礎上套一層to_date(from_unixtime())

⑥ spark sql怎麼去獲取hive 表一定日期范圍內的數據

select orderid,fenjian,timee
from
(
select orderid,fenjian,timee,row_number(orderid,fenjian) rn
from (
select orderid,fenjian,timee from tableName
distribute by orderid,fenjian sort by orderid,fenjian,timee asc
) t1
) t2
where t2.rn=1

⑦ Hivesql計算兩個時間戳相差的分鍾數

1.Hive row_number() 函數的高級用法 row_num 按照某個欄位分區顯示第幾條數據

select imei,ts,fuel_instant,gps_longitude,gps_latitude,row_number() over (PARTITION BY imei ORDER BY ts ASC) as row_num from sample_data_2

2.row_num 是相互連續的,join 自身,然後時間相減可求差
create table obd_20140101 as

select a.imei,a.row_num,a.ts,COALESCE(unix_timestamp(a.ts, 'yyyy-MM-dd HH:mm:ss.S'), 0) - unix_timestamp(b.ts, 'yyyy-MM-dd HH:mm:ss.S') as intervel ,a.fuel_instant,a.gps_speed as obd_speed,a.gps_status,a.gps_longitude,a.gps_latitude,a.direct_angle,a.obdspeed from obddata_20140101 a join obddata_20140101 b on a.imei = b.imei and a.row_num = b.row_num +1

⑧ hvie sql日期轉換成字元串 格式為YYYYMMDD 怎麼寫

hvie sql日期轉換成字元串 格式為YYYYMMDD 怎麼寫?
CONVERT(數據類型,表達式,樣式)

⑨ 以下哪些sql語句在hive中執行可以得到系統當前時間年月日

substring(now(),1,10)
from_unixtime(unix_timestamp,'yyyy-MM-dd')

⑩ hive sql 怎麼不能這樣寫啊 (mysql 是沒有問題的)

你可以先用hive或者手寫map/rece程序。建議你直接使用hive,hive也像mysql一樣可以建表。表裡的數據就是對應從本地load到hadoop上的文件,格式自己定。然後用JDBC可以像操作mysql一樣操作hive(sql語法稍有不同)