最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQL中日期格式處理方法大全

 更新時間:2023年09月06日 10:50:46   作者:Forge_ahead  
這篇文章主要給大家介紹了關(guān)于SQL中日期格式處理方法的相關(guān)資料,在SQL中日期格式化非常重要的,因日期SQL中的一個基數(shù)據(jù)類型,我們可以使用函數(shù)和選項來格式化日期,使用日期函數(shù)來處理日期數(shù)據(jù),需要的朋友可以參考下

背景:

實際工作,使用SQL語句對數(shù)據(jù)進行處理,有一大部分工作是對日期時間型數(shù)據(jù)進行處理,通過對字段的拼接或轉(zhuǎn)換生成實際需要的格式的日期字段。本文章盡可能全面記錄現(xiàn)在主流的數(shù)據(jù)庫(MySQL和Hive)對日期格式的處理,形成一份工作速查文檔,提升工作效率。

一、獲取當(dāng)前日期

MySQL

select now();  --日期時間格式
select current_date();  -- 日期格式
select current_time(); -- 時間格式
select sysdate();  -- 日期時間格式
select current_timestamp();  -- 日期時間戳

Hive

select current_date()  -- 日期格式
select current_timestamp()  -- 日期時間格式

sql server

select getdate()
--獲得年月日
select convert(nvarchar(10),getdate(),120)
--獲得年月
select convert(nvarchar(7),getdate(),120)

二、日期格式化

格式化可以將不符合要求規(guī)范的日期格式字段或字符串類型字段轉(zhuǎn)換為格式化日期。

MySQL

select  date_format('20230613','%Y-%m-%d');
select  date_format('20230613','%Y-%m-%d %H:%i:%s');
select  date_format(now(),'%Y-%m-%d');
-- 可使用unix_timestamp函數(shù)獲取 unix 時間戳,使用時間格式轉(zhuǎn)換函數(shù)from_unixtime轉(zhuǎn)換為格式日期
select from_unixtime(unix_timestamp('20230613'), '%Y-%m-%d');

Hive

select date_format(current_timestamp(),'yyyy-MM-dd')  
-- Hive中對月份格式用MM
select date_format(current_timestamp(),'yyyy-MM-dd HH:mm:ss')
select from_unixtime(unix_timestamp('2023-06-13', 'yyyy-MM-dd'), 'yyyyMMdd') -- 生成20230613對應(yīng)格式的日期
-- unix_timestamp返回對應(yīng)時間戳
select unix_timestamp() -- 返回當(dāng)前時間對應(yīng)的時間戳,時間戳數(shù)值可以加減,如一小時3600秒,一天86400秒

sql server

select convert(datetime,'YYYY-MM-DD   HH24:MI:SS')
-- cast強制轉(zhuǎn)換
select cast('YYYY-MM-DD   HH24:MI:SS'   as   datetime)

三、日期轉(zhuǎn)換為字符串

SQL表中存儲日期對數(shù)據(jù)類型有要求,特別是 hive存儲日期時間的時候通常用string,所以有時也要實現(xiàn)日期轉(zhuǎn)換為字符串。

MySQL

-- 可使用substr字符串切割函數(shù),返回從m開始長度為n的字符串
select substr(now(),1,10);
-- 使用concat字符串拼接函數(shù)
select concat(substr(now(),1,4),substr(now(),6,2));

Hive

-- 使用cast強制轉(zhuǎn)換為字符串
select cast(from_unixtime(unix_timestamp('20230613', 'yyyyMMdd'), 'yyyy-MM-dd') as string)

sql server

-- 
select convert(nvarchar(10),getdate(),120)
-- 常用格式
Select  CONVERT(varchar(100), GETDATE(), 120)   -- 年月日 時分秒
Select CONVERT(varchar(100), GETDATE(), 112)   -- 年月日(無分隔符)
Select CONVERT(varchar(100), GETDATE(), 111)  -- 年月日(分隔符/)
Select CONVERT(varchar(100), GETDATE(), 102)  -- 年月日(分隔符.)
Select CONVERT(varchar(100), GETDATE(), 23)  -- 年月日(分隔符-)
Select CONVERT(varchar(100), GETDATE(), 8)  -- 時分秒

日期計算

在表的實際計算中,常需要計算距離某個日期或現(xiàn)在日期往前或往后某段時間的日期。

-- 加(Mysql)
select date_add(now(),interval 1 day);
-- year:年,quarter:季,month:月,week:周,day:天,hour:小時,minuter:分鐘,second:秒,microsecond:毫秒
-- 加(sql server)
select dateadd(day,n,'2023-06-20')
-- 加(Hive)
select date_add(current_timestamp(),1) -- 加一天
select date_format(date_sub(current_timestamp(),1),'yyyy-MM-dd') --指定前一天日期
select from_unixtime((unix_timestamp()-86400),'yyyy-MM') --指定前一天日期
-- 減
select date_sub(now(),interval 1 month);
select date_sub(date_format(current_timestamp(),'yyyy-MM-dd'),1) 
select date_sub(current_timestamp(),14) -- Hive指定前一天日期
-- 計算日期間隔
select datediff('2023-6-16','2023-6-1') -- mysql計算兩個日期之間的間隔(相差天數(shù))
select datediff('d','2023-6-1','2023-6-16 12:20:00') --sql server計算兩個日期之間間隔天數(shù)
select timediff('12:00:00', '11:30:00') -- 兩個時間間隔
select timestampdiff(month,date_sub(now(),interval 60 day),now()); -- 相差月
-- timestampdiff第一個參數(shù)定義返回計算的結(jié)果。year:年,quarter:季,month:月,week:周,day:天,hour:小時,minuter:分鐘,second:秒,microsecond:毫秒
-- timestampdiff減去的日期帶有時間,會認(rèn)為是下一天(2023-07-20 08:00:00會按照2023-07-21計算);datediff會直接截取時間(2023-07-20 18:00:00也會按照2023-07-20計算)
select timestampdiff(day,'2023-07-13',current_date()) -- timestampdiff可以實現(xiàn)各種字符串(例如2023-07-13,20230703)日期的加減
-- 當(dāng)月的第一天
select STR_TO_DATE(CONCAT(DATE_FORMAT(now(),'%Y-%m'), '-01'), '%Y-%m-%d')
-- sql server返回當(dāng)月1號
select CONVERT(varchar(10),DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE()),0),120)
-- 當(dāng)月最后一天
select DATE_ADD(STR_TO_DATE(CONCAT(DATE_FORMAT(DATE_ADD(now(),INTERVAL 1 MONTH),'%Y-%m'), '-01'), '%Y-%m-%d'),INTERVAL -1 DAY); 

總結(jié) 

到此這篇關(guān)于SQL中日期格式處理的文章就介紹到這了,更多相關(guān)SQL日期格式處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

土默特左旗| 宁夏| 云林县| 温宿县| 芒康县| 永兴县| 罗江县| 汶上县| 金华市| 青河县| 江都市| 萍乡市| 万州区| 讷河市| 义马市| 尉犁县| 孟连| 舟山市| 铜鼓县| 嵊州市| 黄骅市| 梁平县| 克东县| 白山市| 淮南市| 镇巴县| 卫辉市| 鹤山市| 十堰市| 广丰县| 石嘴山市| 丹寨县| 黄山市| 昌宁县| 武强县| 仁寿县| 南宫市| 莒南县| 汽车| 兰州市| 河曲县|