日期和時間 (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
請參閱
參考
日期和時間函數 (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 日期時間格式
時間格式
未分隔的字串格式