sql server date,datetime,datetime2 和 time 簡單介紹

來源:互聯網
上載者:User

標籤:

Sql Server使用 Date表示日期,time表示時間,使用datetime和datetime2表示日期和時間。

 

1,秒的精度是指使用多少位小數表示1s:

DateTime資料類型秒的精度是3,DateTime2和Time可以控制秒的精度,

文法是DateTime2(n)和time(n),n的取值範圍是0-7,預設值是7。

 

2,DateTime資料類型 儲存日期和時間,需要8個位元組的固定儲存空間,預設的資料格式是yyyy-MM-dd hh:mm:ss.xxx,表示從1753年1月1日到9999年12月31日的日期和時間資料,精確度為3.33毫秒或0.00333秒,即可以表示的日期範圍從公元1753年1月1日00:00:00.000 到9999年12月31日23:59:59.997 ,精確到3.33毫秒。

Microsoft SQL Server 用兩個 4 位元組的整數內部儲存 datetime 資料類型的值。第一個 4 位元組儲存 base date (即 1900 年 1 月 1 日)之前或之後的天數。基礎日期是系統參考日期。不允許早於 1753 年 1 月 1 日的 datetime 值。第一個4 位元組:1900 年1 月1 日當日為0 ;之前的日期是負數,之後日期是正數。另外一個 4 位元組儲存以10/3 毫秒數所代表的每天的時間。

declare @dt datetime

使用GetDate()和GetUTCDate()為DateTime類型的變數賦值,這兩個函數傳回值的類型是DateTime

declare @dt datetimeset @dt=getdate()

 

3,DateTime2資料類型 儲存日期和時間,需要的儲存空間不固定。根據儲存的時間部分 fractional seconds precision來確定DateTime2的Storage Size,6 bytes for precisions less than 3; 7 bytes for precisions 3 and 4. All other precisions require 8 bytes.

DateTime2可以表示比DateTime更精確的時間,預設的資料格式是yyyy-MM-dd hh:mm:ss.nnnnnnn,DateTime2 秒預設的精度是7,即用7位小數表示一秒的精度。

DateTime2的文法是

datetime2 [ (fractional seconds precision) ]

下面兩種聲明變數的方式是等價的。

declare @dt2 datetime2(7)declare @dt2 datetime2

為DateTime2類型的變數賦值,需要使用SysDateTime()和SysUTCDateTime(),這兩個函數傳回值的類型是DateTime2

declare @dt2 datetime2set @dt2=SYSDATETIME()

 

4,Date資料類型 只儲存日期,不儲存時間,需要3B的儲存空間,預設的資料格式是yyyy-MM-dd,支援的日期範圍從0001-01-01到9999-12-31

可以使用日期文字,getdate()函數和sysdatetime()函數為Date類型的變數賦值

declare @d dateset @d=‘2015-07-02‘set @d=getdate()set @d=SYSDATETIME()

 

5,Time資料類型 只儲存時間,不儲存日期,需要5B的儲存空間.

Time預設的fractional second precision是7,預設的資料格式是hh:mm:ss.nnnnnnn。

Time資料類型的文法

time [ (fractional second precision) ]


推薦使用時間字串和sysdatetime()函數為Time類型的變數賦值。不推薦使用GetDate()函數,GetDate()函數返回的是DateTime類型,時間部分的fractional second precision沒有time類型高,如果對時間的precision要求高,請使用時間字串和sysdatetime()函數為Time類型的變數賦值。

--declare @t time(7)DECLARE @t timeset @t=‘13:48:43.2840467‘set @t=SYSDATETIME()--not recommendset @t=GETDATE()


6,A simple example

declare @dt2 datetime2declare @d datedeclare @t time--GetDate(),GetUTCDate() 傳回值的資料類型是DateTime--SysDateTime(),SysUTCDate() 傳回值的資料類型是DateTime2select  @dt=getdate(),        @dt2=sysdatetime(),        @d = convert(nvarchar(8),getdate(),112),        @t=‘13:48:43.2840467‘select @dt as dt,@dt2 as dt2,@d as d, @t as t

 

sql server date,datetime,datetime2 和 time 簡單介紹

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.