smalldatetime (Transact-SQL)

定义结合了一天中的时间的日期。此时间为 24 小时制,秒始终为零 (:00),并且不带秒小数部分。

注意注意

对于新的工作,请使用 time、date、datetime2 和 datetimeoffset 数据类型。这些类型符合 SQL 标准。它们更易于移植。time、datetime2 和 datetimeoffset 提供更高精度的秒数。datetimeoffset 为全局部署的应用程序提供时区支持。

有关所有 Transact-SQL 日期和时间数据类型及函数的概述,请参阅日期和时间数据类型及函数 (Transact-SQL)。有关日期和时间数据类型及函数共有的信息和示例,请参阅使用日期和时间数据

smalldatetime 说明

语法

smalldatetime

用法

DECLARE @MySmalldatetime smalldatetime

CREATE TABLE Table1 ( Column1 smalldatetime )

默认的字符串文字格式

(用于下级客户端)

不适用

日期范围

1900-01-01 到 2079-06-06

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

时间范围

00:00:00 到 23:59:59

2007-05-09 23:59:59 将舍入为

2007-05-10 00:00:00

元素范围

YYYY 是表示年份的四位数字,范围为 1900 到 2079。

MM 是表示指定年份中的月份的两位数字,范围为 01 到 12。

DD 是表示指定月份中的某一天的两位数字,范围为 01 到 31(最高值取决于相应月份)。

hh 是表示小时的两位数字,范围为 00 到 23。

mm 是表示分钟的两位数字,范围为 00 到 59。

ss 是表示秒钟的两位数字,范围为 00 到 59。小于或等于 29.998 秒的值向下舍入为最接近的分钟数;大于或等于 29.999 秒的值向上舍入为最接近的分钟数。

字符长度

最高 19 位

存储大小

固定 4 个字节。

精确度

一分钟

默认值

1900-01-01 00:00:00

日历

公历

(不包括完整的年份范围。)

用户定义的秒的小数部分精度

时区偏移量感知和保留

夏时制感知

对 ANSI 和 ISO 8601 的遵从性

smalldatetime 不符合 ANSI 或 ISO 8601。

示例

A. 将带秒数的字符串文字转换为 smalldatetime

下例比较了将字符串文字中的秒数转换成 smalldatetime 时产生的结果。

SELECT 
     CAST('2007-05-08 12:35:29'     AS smalldatetime)
    ,CAST('2007-05-08 12:35:30'     AS smalldatetime)
    ,CAST('2007-05-08 12:59:59.998' AS smalldatetime);

输入

输出

2007-05-08 12:35:29

2007-05-08 12:35:00

2007-05-08 12:35:30

2007-05-08 12:36:00

2007-05-08 12:59:59.998

2007-05-08 13:00:00

B. 比较日期和时间数据类型

下例比较了将一个字符串分别转换为各种日期和时间数据类型时所产生的结果。

SELECT 
     CAST('2007-05-08 12:35:29. 1234567 +12:15' AS time(7)) AS 'time' 
    ,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS date) AS 'date' 
    ,CAST('2007-05-08 12:35:29.123' AS smalldatetime) AS 
        'smalldatetime' 
    ,CAST('2007-05-08 12:35:29.123' AS datetime) AS 'datetime' 
    ,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS datetime2(7)) AS 
        'datetime2'
    ,CAST('2007-05-08 12:35:29.1234567 +12:15' AS datetimeoffset(7)) AS 
        'datetimeoffset';

数据类型

输出

time

12:35:29. 1234567

date

2007-05-08

smalldatetime

2007-05-08 12:35:00

datetime

2007-05-08 12:35:29.123

datetime2

2007-05-08 12:35:29. 1234567

datetimeoffset

2007-05-08 12:35:29.1234567 +12:15