本文件已封存並已停止維護。

日期和時間 (Transact-SQL)

這些是用來代表日期和當日時間的資料類型。

datetime 及 smalldatetime

代表日期和當日時間。

資料類型 範圍 精確度

datetime

1753 年 1 月 1 日到 9999 年 12 月 31 日

3.33 毫秒

smalldatetime

1900 年 1 月 1 日到 2079 年 6 月 6 日

1 分鐘

SQL Server 2005 Database Engine 會在內部將 datetime 資料類型的值儲存成兩個 4 位元組的整數。前 4 位元組用來儲存在「基底日期」 (1900 年 1 月 1 日) 之前或之後的天數。基底日期是系統參考日期。另一個 4 位元組用來儲存當日時間,以午夜之後的 1/300 秒單位的數目來表示。

smalldatetime 資料類型會以低於 datetime 的有效位數來儲存日期和當日時間。Database Engine 會將 smalldatetime 值儲存成兩個 2 位元組整數。前 2 位元組用來儲存在 1900 年 1 月 1 日之後的天數。另外 2 位元組用來儲存午夜之後的分鐘數。

datetime 值會捨入到 .000、.003 或 .007 秒的遞增,如下表所示。

範例 捨入範例

01/01/98 23:59:59.999

1998-01-02 00:00:00.000

01/01/98 23:59:59.995,

01/01/98 23:59:59.996,

01/01/98 23:59:59.997 或

01/01/98 23:59:59.998

1998-01-01 23:59:59.997

01/01/98 23:59:59.992,

01/01/98 23:59:59.993 或

01/01/98 23:59:59.994

1998-01-01 23:59:59.993

01/01/98 23:59:59.990 或

01/01/98 23:59:59.991

1998-01-01 23:59:59.990

29.998 秒或以下的 smalldatetime 值會向下捨入到最接近的分鐘;29.999 秒或以上的值會向上捨入到最接近的分鐘。

--Returns time as 12:35.
SELECT CAST('2003-05-08 12:35:29.998' AS smalldatetime);
GO
--Returns time as 12:36.
SELECT CAST('2003-05-08 12:35:29.999' AS smalldatetime);
GO
顯示: