欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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)文章

  • SQL注入漏洞掃描之sqlmap詳解

    SQL注入漏洞掃描之sqlmap詳解

    SQLMap是一款自動執(zhí)行SQL注入的審計工具,支持多種SQL注入技術(shù),包括布爾型盲注、時間型盲注、報錯型注入、聯(lián)合查詢注入和堆疊查詢注入
    2025-01-01
  • 如何使用navicat遠程連接openGauss

    如何使用navicat遠程連接openGauss

    公司要在openEuler系統(tǒng)中安裝openGauss數(shù)據(jù)庫,經(jīng)過幾天的查資料,終于是安裝成功了,并且能在navicat中遠程連接使用,本文給大家介紹如何使用navicat遠程連接openGauss,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • 主鍵與聚集索引

    主鍵與聚集索引

    表通常具有包含唯一標(biāo)識表中每一行的值的一列或一組列。這樣的一列或多列稱為表的主鍵 (PK),用于強制表的實體完整性。在創(chuàng)建或修改表時,您可以通過定義 PRIMARY KEY 約束來創(chuàng)建主鍵。
    2009-07-07
  • 數(shù)據(jù)庫的四種隔離級別

    數(shù)據(jù)庫的四種隔離級別

    今天小編就為大家分享一篇關(guān)于數(shù)據(jù)庫的四種隔離級別,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • MSSQL轉(zhuǎn)MYSQL的一些記錄

    MSSQL轉(zhuǎn)MYSQL的一些記錄

    今天把一個MSSQL的數(shù)據(jù)庫轉(zhuǎn)成MYSQL,在沒有轉(zhuǎn)換工具的情況下,對于字段不多的數(shù)據(jù)表我用了如下手功轉(zhuǎn)換的方法,還算方便。MSSQL使用企業(yè)管理器操作,MYSQL用phpmyadmin操作。
    2010-02-02
  • mysql、mssql及oracle分頁查詢方法詳解

    mysql、mssql及oracle分頁查詢方法詳解

    這篇文章主要介紹了mysql、mssql及oracle分頁查詢方法,實例分析了數(shù)據(jù)庫分頁的實現(xiàn)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • 將sqlite3中數(shù)據(jù)導(dǎo)入到mysql中的實戰(zhàn)教程

    將sqlite3中數(shù)據(jù)導(dǎo)入到mysql中的實戰(zhàn)教程

    最近因為工作的需求,需要將sqlite3中的數(shù)據(jù)導(dǎo)入到mysql中去,發(fā)現(xiàn)網(wǎng)上的一些教程都不夠詳細,索性自己寫一篇,下面這篇文章主要給大家介紹了關(guān)于將sqlite3數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)入到mysql數(shù)據(jù)庫中的相關(guān)資料,需要的朋友可以參考下。
    2017-07-07
  • 數(shù)據(jù)庫同步優(yōu)化技巧分享

    數(shù)據(jù)庫同步優(yōu)化技巧分享

    這篇文章主要介紹了數(shù)據(jù)庫同步優(yōu)化技巧分享,需要的朋友可以參考下
    2015-10-10
  • Instagram提升PostgreSQL性能的五個技巧

    Instagram提升PostgreSQL性能的五個技巧

    這篇文章主要介紹了Instagram提升PostgreSQL性能的五個技巧,Instagram的數(shù)據(jù)庫一直由PostgreSQL支撐,經(jīng)驗很具有參考性,需要的朋友可以參考下
    2015-04-04
  • 分布式數(shù)據(jù)存儲系統(tǒng)的三要素

    分布式數(shù)據(jù)存儲系統(tǒng)的三要素

    大家好,本篇文章主要講的是分布式數(shù)據(jù)存儲系統(tǒng)的三要素,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12

最新評論