SQLServer日期轉(zhuǎn)換匯總
常用SQLServer數(shù)據(jù)庫日期轉(zhuǎn)換處理函數(shù)使用說明書
SQL Server是由美國Microsoft公司開發(fā)的,一種關(guān)系型數(shù)據(jù)庫系統(tǒng),它現(xiàn)在已經(jīng)成為全世界主流的數(shù)據(jù)庫之一。該數(shù)據(jù)庫具備方便使用、可伸縮性好、相關(guān)軟件集成程度高等優(yōu)勢,能夠從單一的筆記本上運(yùn)行或以高倍云服務(wù)器集群為基礎(chǔ),或在這兩者之間任何東西上運(yùn)行。盡管SQL Server的可運(yùn)行范圍廣泛,但需要考慮有關(guān)的軟件和硬件配置。
SQL Server應(yīng)用集成化的商務(wù)智能(BI)專用工具提供了企業(yè)級的數(shù)據(jù)管理服務(wù)。Microsoft SQL Server數(shù)據(jù)庫引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更可靠安全的存儲功能,使用戶能夠搭建和管理用于業(yè)務(wù)流程的高可用性和性能卓越的程序。自1989年SQL Server 1.0公布以來,SQL Server已逐漸發(fā)展成為一個企業(yè)級的信息化平臺和數(shù)據(jù)管理及商務(wù)智能服務(wù)平臺,提供企業(yè)級的高可用性和安全性。
SQL Server是基于客戶端/服務(wù)器模式(C/S模式)的大型關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。此外,SQL Server還有一些特定的數(shù)據(jù)庫,如master、model、msdb、tempdb和distribution,它們各自承擔(dān)著不同的任務(wù),如控制數(shù)據(jù)庫的運(yùn)行、為新創(chuàng)建的數(shù)據(jù)庫提供模板、為SQL Server Agent調(diào)度信息和作業(yè)記錄提供存儲空間、為臨時表和臨時存儲過程提供存儲空間,以及在復(fù)制操作時產(chǎn)生,用來存儲快照等發(fā)布信息。
DATEADD()
說明:在日期中添加或減去指定的時間間隔。
語法:
DATEADD(datepart,number,date)
參數(shù):
(1)date 參數(shù)是合法的日期表達(dá)式,類型可以是datetime、smalldatetime、char。
(2)number 是您希望添加的間隔數(shù),最好是整數(shù);對于未來的時間,此數(shù)是正數(shù),對于過去的時間,此數(shù)是負(fù)數(shù)。
(3)datepart 參數(shù)可以是下面表格的值。
datepart值
年份(year)yy , yyyy , year
季度(quarter)qq , q , quarter
月份(month)mm , m , month
年中的日(day of year)dy, y
日(day)dd , d , day
周(week)wk , ww , week
星期(weekday)dw, w
小時(hour)hh , hour
分鐘(minute)mi , n , minute
秒(second)ss , s , second
毫秒(millisecondms
微秒(microsecond)mcs
納秒(nanosecond)ns
實(shí)現(xiàn)秒加減
--減100秒
SELECT DATEADD(ss,-100,'2020-09-03')--2020-09-02 23:58:20.000
SELECT DATEADD(s,-100,'2020-09-03')--2020-09-02 23:58:20.000
SELECT DATEADD(second,-100,'2020-09-03')--2020-09-02 23:58:20.000
--加100秒
SELECT DATEADD(ss,100,'2020-09-03')--2020-09-03 00:01:40.000
SELECT DATEADD(s,100,'2020-09-03')--2020-09-03 00:01:40.000
SELECT DATEADD(second,100,'2020-09-03')--2020-09-03 00:01:40.000
實(shí)現(xiàn)分鐘加減
--減1分鐘
SELECT DATEADD(mi,-1,'2020-09-03')--2020-09-02 23:59:00.000
SELECT DATEADD(n,-1,'2020-09-03')--2020-09-02 23:59:00.000
SELECT DATEADD(minute,-1,'2020-09-03')--2020-09-02 23:59:00.000
--加1分鐘
SELECT DATEADD(mi,1,'2020-09-03')--2020-09-03 00:01:00.000
SELECT DATEADD(n,1,'2020-09-03')--2020-09-03 00:01:00.000
SELECT DATEADD(minute,1,'2020-09-03')--2020-09-03 00:01:00.000
實(shí)現(xiàn)小時加減
--減1小時
SELECT DATEADD(hh,-1,'2020-09-03')--2020-09-02 23:00:00.000
SELECT DATEADD(hour,-1,'2020-09-03')--2020-09-02 23:00:00.000
--加1小時
SELECT DATEADD(hh,1,'2020-09-03')--2020-09-03 01:00:00.000
SELECT DATEADD(hour,1,'2020-09-03')--2020-09-03 01:00:00.000
實(shí)現(xiàn)日加減
--減1天
SELECT DATEADD(dd,-1,'2020-09-03')--2020-09-02 00:00:00.000
SELECT DATEADD(d,-1,'2020-09-03')--2020-09-02 00:00:00.000
SELECT DATEADD(day,-1,'2020-09-03')--2020-09-02 00:00:00.000
--加1天
SELECT DATEADD(dd,1,'2020-09-03')--2020-09-04 00:00:00.000
SELECT DATEADD(d,1,'2020-09-03')--2020-09-04 00:00:00.000
SELECT DATEADD(day,1,'2020-09-03')--2020-09-04 00:00:00.000
實(shí)現(xiàn)周加減
-- 2020-09-03星期四
--減1周
SELECT DATEADD(ww,-1,'2020-09-03')--2020-08-27 00:00:00.000星期四
SELECT DATEADD(wk,-1,'2020-09-03')--2020-08-27 00:00:00.000星期四
SELECT DATEADD(week,-1,'2020-09-03')--2020-08-27 00:00:00.000星期四
--加1周
SELECT DATEADD(ww,1,'2020-09-03')--2020-09-10 00:00:00.000星期四
SELECT DATEADD(ww,1,'2020-09-03')--2020-09-10 00:00:00.000星期四
SELECT DATEADD(ww,1,'2020-09-03')--2020-09-10 00:00:00.000星期四
實(shí)現(xiàn)月份加減
--減1月
SELECT DATEADD(m,-1,'2020-09-03')--2020-08-03 00:00:00.000
SELECT DATEADD(mm,-1,'2020-09-03')--2020-08-03 00:00:00.000
SELECT DATEADD(month,-1,'2020-09-03')--2020-08-03 00:00:00.000
--加1月
SELECT DATEADD(m,1,'2020-09-03')--2020-09-03 00:00:00.000
SELECT DATEADD(mm,1,'2020-09-03')--2020-09-03 00:00:00.000
SELECT DATEADD(month,1,'2020-09-03')--2020-09-03 00:00:00.000
實(shí)現(xiàn)季度加減
--減1季度
SELECT DATEADD(q,-1,'2020-09-03')--2020-06-03 00:00:00.000
SELECT DATEADD(qq,-1,'2020-09-03')--2020-06-03 00:00:00.000
SELECT DATEADD(quarter,-1,'2020-09-03')--2020-06-03 00:00:00.000
--加1季度
SELECT DATEADD(q,1,'2020-09-03')--2020-12-03 00:00:00.000
SELECT DATEADD(qq,1,'2020-09-03')--2020-12-03 00:00:00.000
SELECT DATEADD(quarter,1,'2020-09-03')--2020-12-03 00:00:00.000
實(shí)現(xiàn)年份加減
--減1年
SELECT DATEADD(yy,-1,'2020-09-03')--2019-09-03 00:00:00.000
SELECT DATEADD(yyyy,-1,'2020-09-03')--2019-09-03 00:00:00.000
SELECT DATEADD(year,-1,'2020-09-03')--2019-09-03 00:00:00.000
--加1年
SELECT DATEADD(yy,1,'2020-09-03')--2021-09-03 00:00:00.000
SELECT DATEADD(yyyy,1,'2020-09-03')--2021-09-03 00:00:00.000
SELECT DATEADD(year,1,'2020-09-03')--2021-09-03 00:00:00.000
convert函數(shù)作用:
1、把日期轉(zhuǎn)換為新數(shù)據(jù)類型
2、用不同的格式顯示日期/時間數(shù)據(jù)
以下是通過convert函數(shù)獲取日期的不同類型方式
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
Select CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112): 20060516
Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130): 18 ??? ??? 1427 10:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM

