MS SQL Server 時間函數

來源:互聯網
上載者:User

標籤:

 

日期和時間資料類型
資料類型

儲存(位元組)

日期範圍 精確度 格式樣本
DateTime 8 1753年1月1日 - 9999年12月31日 3 1/3毫秒 yyyy-MM-dd hh:mm:ss.nnn
smalldatetime 4 1900年1月1日 - 2079年6月6日 1分鐘 yyyy-MM-dd hh:mm
date 3 0001年1月1日 - 9999月12月31日 1天 yyyy-MM-dd
time 3-5 N/A 100納秒 hh:mm:ss.nnnnnnn
DateTime2 6-8 0001年1月1日 - 9999年12月31日 100納秒 yyyy-MM-dd hh:mm:ss.nnnnnnn
Datetimeoffset 8-10 0001年1月1日 -- 9999年12月31日 100納秒 yyyy-MM-dd hh:mm:ss.nnnnnnn

-- 1、時間和日期函數 除了CURRENT_TIMESTAMP 函數不置頂小括弧"()";其他的函數都需要制定小括弧

select GETDATE() --返回目前時間
select CURRENT_TIMESTAMP-- 等同於getdate(),但是遵循ANSI SQL
select GETUTCDATE()-- 返回UTC日期和時間(國際標準時間 )
select SYSDATETIME()-- 當前日期和時間
select SYSUTCDATETIME()-- 當前UTC日期和時間(國際標準時間)
select SYSDATETIMEOFFSET()-- 包含時區位移量的當前日期時間

 

-- 2、cast、convert函數,及其Try_對應函數 TRY_函數在SQL Sever2012開始支援
-- cast、convert函數用於將輸入值轉換為目標類型,如果轉換成功輸出轉換的值,否則報錯;
-- try_cast、try_convert函數;兩個個try_函數與其對應的函數功能作用一樣,不同的是如果不能講輸入的值轉換為指定類型,函數返回NULL.

select CAST(‘20160628‘ AS DATE)
select TRY_CAST(‘20160628‘ AS DATE)

select CAST(‘123456‘ as DATE)
select Try_CAST(‘123456‘ as DATE)


select CONVERT(char(10),GETDATE(),120)
select Try_CONVERT(char(10),GETDATE(),120)


select CONVERT(int,‘123acb‘)
select Try_CONVERT(int,‘123acb‘)

 

-- 3、switchoffset函數將輸入的datetimeoffset時間調整為指定的時區時間
select switchoffset(sysdatetimeoffset(),‘-05:00‘) --查詢-05:00 時區時間
select SWITCHOFFSET(SYSDATETIMEOFFSET(),‘+00:00‘) --查詢UTC時間

 

-- 4、Todatetimeoffset函數;設定輸入的日期和時間值得時區位移量
select TODATETIMEOFFSET(SYSDATETIMEOFFSET(),-10)

 

-- 5、DateAdd函數;允許為指定的日期部分增加一個指定的單位的單位元量到輸入的日期和時間值中。
select DATEADD(YEAR,1,‘2016-06-28‘)--指定日期加1年 2017-06-28
select DATEADD(QUARTER,1,‘2016-06-28‘) --指定日期加3個月206-09-28
select DATEADD(MONTH,-1,‘2016-06-28‘)--指定日期減1個月2016-05-28
select DATEADD(DAY,1,‘2016-06-28‘)--指定日期加1天2016-06-29
select DATEADD(WEEK,1,‘2016-06-28‘)--指定日期加7天2016-07-05
select DATEADD(HOUR,1,‘2016-06-28 21:00:00.000‘)-- 指定時間加1小時 2016-06-28 22:00:00.000
select DATEADD(MINUTE,1,‘2016-06-28 21:00:00.000‘)-- 指定時間加1分鐘 2016-06-28 21:01:00.000
select DATEADD(SECOND,1,‘2016-06-28 21:00:00.000‘) -- 指定時間加1秒鐘 2016-06-28 21:00:01.000
select DATEADD(MILLISECOND,10,‘2016-06-28 21:00:00.000‘) --指定時間加10毫秒 2016-06-28 21:00:00.010


-- 6、DateDiff(part,val1,val2)函數;返回val2-val1返回指定單位的數量
select DateDiff(YEAR,‘2011-06-28‘,‘2017-06-28‘)
select DateDiff(QUARTER,‘2016-03-28‘,‘2016-06-28‘)
select DateDiff(MONTH,‘2016-05-28‘,‘2016-06-28‘)
select DateDiff(DAY,‘2016-06-27‘,‘2016-06-28‘)
select DateDiff(WEEK,‘2016-06-21‘,‘2016-06-28‘)
select DateDiff(HOUR,‘2016-06-28 20:00:00.000‘,‘2016-06-28 21:00:00.000‘)
select DateDiff(MINUTE,‘2016-06-28 21:01:00.000‘,‘2016-06-28 21:00:00.000‘)
select DateDiff(SECOND,‘2016-06-28 21:00:01.000‘,‘2016-06-28 21:00:00.000‘)
select DateDiff(MILLISECOND,‘2016-06-28 21:00:00.001‘,‘2016-06-28 21:00:00.000‘)

 

-- 7、datepart函數;返回一個日期或時間部分的整數部分;
select DATEPART(YEAR,‘2016-06-28‘)
select DATEPART(MONTH,‘2016-06-28‘)
select DATEPART(WEEK,‘2016-06-28‘)
select DATEPART(DAY,‘2016-06-28‘)
select DATEPART(HOUR,‘2016-06-28 21:01:02‘)
select DATEPART(MINUTE,‘2016-06-28 21:01:02‘)
select DATEPART(SECOND,‘2016-06-28 21:01:02‘)
select DATEPART(MILLISECOND,‘2016-06-28 21:01:02:100‘)


-- 8、year、month和day函數;和datepart函數一樣;返回年、月、日期的整數
select YEAR(‘2016-06-28‘)
select month(‘2016-06-28‘)
select day(‘2016-06-28‘)


-- 9、datename函數;與datepart類似;但是返回的不是數字而是名稱,根據作業系統的語言返回指定的日期名稱;例如英文作業系統中 DATENAME(MONTH,‘2016-06-28‘) 返回june
select DATENAME(year,‘2016-06-28‘)
select DATENAME(MONTH,‘2016-06-28‘)
select DATENAME(DAY,‘2016-06-28‘)
select DATENAME(HOUR,‘2016-06-28 21:01:02‘)
select DATENAME(MINUTE,‘2016-06-28 21:01:02‘)
select DATENAME(SECOND,‘2016-06-28 21:01:02‘)
select DATENAME(MILLISECOND,‘2016-06-28 21:01:02:100‘)


-- 10、isdate函數;判斷輸入的字串是否能轉換為日期或時間;true 為1;false為0
select ISDATE(‘2016-06-28‘) --true
select ISDATE(‘2016-06-282‘) --false

select ISDATE(‘2016-06-28 21:00:00.000‘) --true
select ISDATE(‘2016-06-28 21:00:00.0000‘) --false

MS SQL Server 時間函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.