日期和時間 (Transact-SQL)

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

  • datetimesmalldatetime
    代表日期和當日時間。

    資料類型 範圍 精確度

    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

請參閱

參考

日期和時間函數 (Transact-SQL)
資料類型 (Transact-SQL)
ALTER TABLE (Transact-SQL)
CAST 和 CONVERT (Transact-SQL)
CREATE TABLE (Transact-SQL)
DECLARE @local\_variable (Transact-SQL)
DELETE (Transact-SQL)
INSERT (Transact-SQL)
SET @local\_variable (Transact-SQL)
UPDATE (Transact-SQL)

其他資源

資料類型轉換 (Database Engine)
ISO 8601 格式
字母日期格式
數值日期格式
ODBC 日期時間格式
時間格式
未分隔的字串格式

說明及資訊

取得 SQL Server 2005 協助