datetime 和 smalldatetime
用于表示某天的日期和时间的数据类型。
datetime 和 smalldatetime
-
表示某天的日期和时间。
数据类型 范围 精确度 datetime
1753 年 1 月 1 日到 9999 年 12 月 31 日
3.33 毫秒
smalldatetime
1900 年 1 月 1 日到 2079 年 6 月 6 日
1 分钟
备注
Microsoft SQL Server 2005 Database Engine 用两个 4 字节的整数内部存储 datetime 数据类型的值。 第一个 4 字节存储“基础日期”(即 1900 年 1 月 1 日)之前或之后的天数。基础日期是系统参照日期。另外一个 4 字节存储天的时间(以午夜后经过的毫秒数表示)。
smalldatetime 数据类型存储天的日期和时间,但精确度低于 datetime。数据库引擎 将 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 |