MSSQL2008中的时间日期类型详解_第1页
MSSQL2008中的时间日期类型详解_第2页
MSSQL2008中的时间日期类型详解_第3页
MSSQL2008中的时间日期类型详解_第4页
MSSQL2008中的时间日期类型详解_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MSSQL2008中的时间日期类型datetime    用于定义一个与采用24小时制并带有秒小数部分的一日时间组合的日期。       注意           对于性的工作,请使用time、 date、 datetime2 和datetimeoffset数据类型。这些数据类型符合SQL标准。它们更便于移植。time、datetime2和datetimeoffset提供更高精度的秒数。datetimeof

2、fset为全局部署的应用提供时区支持。     datetime说明           属性值语法datetime用法DECLARE MyDatetime datetimeCREATE TABLE Table1 ( Column1 datetime )默认的字符串文字格式(用于下级客户端)不适用日期范围1753 年 1 月 1 日到 9999 年 12 月 31 日时间范围00:00:00 到 23:59:59.9

3、97时区偏移量范围无各元素的范围YYYY 是表示年份的四位数字,范围为 1753 到 9999。MM 是表示指定年份中的月份的两位数字,范围为 01 到 12。DD 是表示指定月份中的某一天的两位数字,范围为 01 到 31(最高值取决于相应月份)。hh 是表示小时的两位数字,范围为 00 到 23。mm 是表示分钟的两位数字,范围为 00 到 59。ss 是表示秒钟的两位数字,范围为 00 到 59。n* 为一个 0 到 3 位的数字,范围为 0 到 999,表示秒的小数部分。字符长度最低 19 位到最高 23 位存储大小8 字节精确度舍入到 .000、.003 或 .007 秒三个增量。默

4、认值1900-01-01 00:00:00日历公历(不包括完整的年份范围。)用户定义的秒的小数部分精度否时区偏移量感知和保留否夏时制感知否datetime 支持的字符串文字格式以下各表列出了 datetime 支持的字符串文字格式。datetime 字符串文字位于单引号 (') 中,例如 'string_literaL',但 ODBC 除外。如果环境不是 us_english,则字符串文字应采用 N'string_literaL' 格式。数值说明日期格式:04/15/1996 - (mdy)04-15-1996 -

5、 (mdy)04.15.1996 - (mdy)04/1996/15 - (myd)15/04/1996 - (dmy)15/1996/04 - (dym)1996/15/04 - (ydm)1996/04/15 - (ymd)时间格式:14:3014:30:20:99914:30:20.94am4 PM您可以指定日期数据,其中月份也通过数值指定。例如,5/20/97 表示 1997 年 5 月 20 日。采用数值日期格式时,可在字符串中使用斜线 (/)、连字符 (-) 或句点 (.)作为分隔符来指定月、日、年。此字符串必须采用以下格式:· 数字 分隔符 数字 分隔符 数字

6、 时间 时间当语言设置为 us_english 时,默认的日期顺序是 mdy。可以使用 SET DATEFORMAT 语句更改日期顺序。SET DATEFORMAT 的设置决定了如何解释日期值。如果顺序和设置不匹配,这些值将由于超出范围而不会被解释成日期,或者被错误地解释。例如,12/10/08 可以解释成六个不同的日期,具体解释为哪一日期取决于 DATEFORMAT 的设置。四位数字的年份被解释为年。字母说明April 15, 1996April 15, 1996April 1996 1515 April, 199615 April,1996

7、15 1996 april15 1996 april1996 APRIL 151996 15 APRIL您可以指定一个日期数据,其中使用完整的月份名称来指定月份。例如,月份用英语 April 或使用其缩写 Apr 指定;逗号是可选的,且忽略大小写。下面是使用字母日期格式的一些准则:· 日期和时间数据要放在单引号 (') 内。对于英语以外的其他语言,使用 N'。· 方括号中的字符是可选的。· 如果只指定年份的最后两位数字,则小于两位数年份截止配置选项值最后两位数字的值与截止年份处于同一个世纪。大于或等于该选项值的值处于截止年份的上一个世纪。例如,如果

8、“两位数年份截止”为 2050(默认值),则 25 将被解释为 2025 年,而 50 将被解释为 1950 年。为避免模糊不清,请使用四位数的年份。· 如果没有指定日,则默认值为当月第一天。当按字母形式指定月份时,SET DATEFORMAT 会话设置不起作用。ISO 8601说明YYYY-MM-DDThh:mm:ss.mmmYYYYMMDDThh:mm:ss.mmm示例:· 2004-05-23T14:25:10· 2004-05-23T14:25:10.487若要使用 ISO 8601 格式,必须按此格式指定每一个元素。这也包括显示在此格式中的 T

9、、冒号 (:)和句点 (.)。方括号表示秒小数部分是可选的。时间部分按 24 小时制指定。T 表示其后是 datetime 值的时间部分。使用 ISO 8601 格式的优点是它是一种国际标准,不会产生模糊的指定。同时,此格式不受 SET DATEFORMAT 或 SET LANGUAGE设置的影响。未分隔的说明YYYYMMDD hh:mm:ss.mmmODBC说明 ts '1998-05-02 01:23:56.123' d '1990-10-02' t '13:33:41' ODBC API 用于定义转义序列以表示

10、日期和时间值,ODBC 称之为时间戳数据。Microsoft OLE DB Provider for SQL Server 所支持的 OLE DB 语言定义 (DBGUID-SQL) 也支持这种 ODBC 时间戳格式。使用 ADO、OLE DB 和基于 ODBC 的 API 的应用程序可以使用这种 ODBC 时间戳格式来表示日期和时间。ODBC 时间戳的转义序列格式为: literal_type 'constant_value' :· literal_type 指定转义序列的类型。时间戳有三个 literal_type 

11、;说明符:· d = 仅日期· t = 仅时间· ts = 时间戳(时间 + 日期)· 'constant_value' 是转义序列的值。constant_value 必须遵循下面每个 literal_type 的格式。literal_typeconstant_value 格式dyyyy-mm-ddthh:mm:ss.ffftsyyyy-mm-dd hh:mm:ss.fffdatetime 秒的小数部分精度的舍入如下表所示,将 datetime 值舍入到 .000、.003、或 .007

12、秒的增量。用户指定的值系统存储的值01/01/98 23:59:59.9991998-01-02 00:00:00.00001/01/98 23:59:59.99501/01/98 23:59:59.99601/01/98 23:59:59.99701/01/98 23:59:59.9981998-01-01 23:59:59.99701/01/98 23:59:59.99201/01/98 23:59:59.99301/01/98 23:59:59.9941998-01-01 23:59:59.99301/01/98 23:59:59.99001/01/98 23:59:59.9911998

13、-01-01 23:59:59.990对 ANSI 和 ISO 8601 的遵从性datetime 不遵从 ANSI 或 ISO 8601。示例下例比较了将一个字符串分别转换为各种 date 和 time 数据类型所产生的结果。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&

14、#39; ,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:1

15、5' AS datetimeoffset(7) AS 'datetimeoffset'下面是结果集:数据类型输出time12:35:29. 1234567date2007-05-08smalldatetime2007-05-08 12:35:00datetime2007-05-08 12:35:29.123datetime22007-05-08 12:35:29. 1234567datetimeoffset2007-05-08 12:35:29.1234567 +12:15datetime2 (Transact-SQL)SQL Server 2008 R2其他版本此主题

16、尚未评级 评价此主题定义结合了 24 小时制时间的日期。可将 datetime2 视作现有 datetime 类型的扩展,其数据范围更大,默认的小数精度更高,并具有可选的用户定义的精度。有关所有 Transact-SQL 日期和时间数据类型及函数的概述,请参阅日期和时间函数 (Transact-SQL)。有关日期和时间数据类型及函数共有的信息和示例,请参阅使用日期和时间数据。datetime2 说明属性值语法datetime2  (fractional seconds precision) 用法DECLARE MyDatetime2&

17、#160;datetime2(7)CREATE TABLE Table1 ( Column1 datetime2(7) )默认的字符串文字格式(用于下级客户端)YYYY-MM-DD hh:mm:ss.fractional seconds有关详细信息,请参阅使用日期和时间数据的“下级客户端的向后兼容性”部分。日期范围0001-01-01 到 9999-12-31公元元年 1 月 1 日到公元 9999 年 12 月 31 日时间范围00:00:00 到 23:59:59.9999999时区偏移量范围无各元素的范围YYYY 是一个四位数,范围从 0001 到 9999,表示年份

18、。MM 是一个两位数,范围从 01 到 12,它表示指定年份中的月份。DD 是一个两位数,范围为 01 到 31(具体取决于月份),它表示指定月份中的某一天。hh 是一个两位数,范围从 00 到 23,它表示小时。mm 是一个两位数,范围从 00 到 59,它表示分钟。ss 是一个两位数,范围从 00 到 59,它表示秒钟。n* 代表 0 到 7 位数字,范围从 0 到 9999999,它表示秒小数部分。字符长度最低 19 位 (YYYY-MM-DD hh:mm:ss ),最高 27 位 (YYYY-MM-DD hh:mm:ss.0000000)精度、小数位数0 至 7 位,准确度为 100n

19、s。默认精度为 7 位数。存储大小精度小于 3 时为 6 个字节;精度为 3 和 4 时为 7 个字节。所有其他精度则需要 8 个字节。精确度100 纳秒默认值1900-01-01 00:00:00日历公历用户定义的秒的小数部分精度有时区偏移量感知和保留无夏时制感知无有关数据类型元数据,请参阅 sys.systypes (Transact-SQL) 或 TYPEPROPERTY (Transact-SQL)。某些日期和时间数据类型的精度和小数位数是可变的。若要获取列的精度和小数位数,请参阅 COLUMNPROPERTY (Transact-SQL)、CO

20、L_LENGTH (Transact-SQL) 或 sys.columns (Transact-SQL)。datetime2 支持的字符串文字格式以下各表列出了适用于 datetime2 的支持的 ISO 8601 和 ODBC 字符串文字格式。有关 datetime2 日期和时间部分的字母、数字、未分隔和时间格式的信息,请参阅日期 (Transact-SQL)和time (Transact-SQL)。ISO 8601说明YYYY-MM-DDThh:mm:ss.nnnnnnnYYYY-MM-DDThh:mm:ss.nnnnnnn此格式

21、不受 SET LANGUAGE 和 SET DATEFORMAT 会话区域设置的影响。T、冒号 (:) 和句点 (.) 包括在字符串文字之内,如“2007-05-02T19:58:47.1234567”。ODBC说明 ts 'yyyy-mm-dd hh:mm:ss.fractional seconds' 特定于 ODBC API:· 小数点右侧的数字表示秒小数部分,可指定 0 到 7 位(100 纳秒)。· 在 SQL Server 2008 中,当兼容级别设置为 10 时,文字将在内部映射到新的 time 类型。对 ANSI 和 ISO

22、 8601 的遵从性datetime2 符合日期和时间的 ANSI 和 ISO 8601 标准。示例下例比较了将一个字符串转换为各种 date 和 time 数据类型的结果。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

23、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)

24、 AS 'datetimeoffset'下面是结果集:数据类型输出time12:35:29. 1234567date2007-05-08smalldatetime2007-05-08 12:35:00datetime2007-05-08 12:35:29.123datetime22007-05-08 12:35:29. 1234567datetimeoffset2007-05-08 12:35:29.1234567 +12:15 datetimeoffset (Transact-SQL)SQL Server 2008 R2其他版本1(共 1)对本文的评价是有帮助

25、60;评价此主题用于定义一个与采用 24 小时制并可识别时区的一日内时间相组合的日期。有关所有 Transact-SQL 日期和时间数据类型及函数的概述,请参阅日期和时间函数 (Transact-SQL)。有关日期和时间数据类型及函数共有的信息和示例,请参阅使用日期和时间数据。datetimeoffset 说明属性值语法datetimeoffset  (fractional seconds precision) 用法DECLARE MyDatetimeoffset datetimeoffset(7)CREATE TABLE Table1 ( Column1 dat

26、etimeoffset(7) )默认字符串文字格式(用于下级客户端)YYYY-MM-DD hh:mm:ss.nnnnnnn +|-hh:mm有关详细信息,请参阅使用日期和时间数据的“下级客户端的向后兼容性”部分。日期范围0001-01-01 到 9999-12-31公元元年 1 月 1 日到公元 9999 年 12 月 31 日时间范围00:00:00 到 23:59:59.9999999时区偏移量范围· -14:00 到 +14:00各元素的范围YYYY 是表示年份的四位数字,范围为 0001 到 9999。MM 是表示指定年份中的月份的两位数字,范围为 01 到 12。

27、DD 是表示指定月份中的某一天的两位数字,范围为 01 到 31(最高值取决于相应月份)。hh 是表示小时的两位数字,范围为 00 到 23。mm 是表示分钟的两位数字,范围为 00 到 59。ss 是表示秒钟的两位数字,范围为 00 到 59。n* 是 0 到 7 位数字,范围为 0 到 9999999,它表示秒的小数部分。hh 是两位数,范围为 -14 到 +14。mm 是两位数,范围为 00 到 59。字符长度最低 26 位 (YYYY-MM-DD hh:mm:ss +|-hh:mm) 到最高 34 位 (YYYY-MM-DD hh:mm:ss.nnnnnnn +|-hh:mm)精度、小

28、数位数指定的小数位数结果 (精度, 小数位数)列长度(以字节为单位)秒的小数部分精度datetimeoffset(34,7)107datetimeoffset(0)(26,0)80-2datetimeoffset(1)(28,1)80-2datetimeoffset(2)(29,2)80-2datetimeoffset(3)(30,3)93-4datetimeoffset(4)(31,4)93-4datetimeoffset(5)(32,5)105-7datetimeoffset(6)(33,6)105-7datetimeoffset(7)(34,7)105-7存储大小默认值为 10 个字节的

29、固定大小,默认的秒的小数部分精度为 100ns。精确度100 纳秒默认值1900-01-01 00:00:00 00:00日历公历用户定义的秒的小数部分精度是时区偏移量感知和保留是夏时制感知否datetimeoffset 支持的字符串文字格式下表列出了 datetimeoffset 支持的 ISO 8601 字符串文字格式。有关 datetimeoffset 日期和时间部分的字母、数值、未分隔的字符串文字格式和时间格式的信息,请参阅 日期 (Transact-SQL) 和 time (Transact-SQL)。ISO 86

30、01说明YYYY-MM-DDThh:mm:ss.nnnnnnn+|-hh:mm这两种格式不受 SET LANGUAGE 和 SET DATEFORMAT 会话的区域设置的影响。datetimeoffset 与 datetime 部分之间不允许有空格。YYYY-MM-DDThh:mm:ss.nnnnnnnZ (UTC)这种遵从 ISO 定义的格式表明 datetime 部分应采用协调世界时 (UTC) 表示。例如,1999-12-12 12:30:30.12345 -07:00 应表示为 1999-12-12 19:30:30.12345Z。时区

31、偏移量时区偏移量指定某个 time 或 datetime 值相对于 UTC 的时区偏移量。时区偏移量可以表示为 +|- hh:mm:· hh 是两位数,范围为 00 到 14,表示时区偏移量中的小时数。· mm 是两位数,范围为 00 到 59,表示时区偏移量中的额外分钟数。· 时区偏移量中必须包含 +(加)或 (减)号。这两个符号表示是在 UTC 时间的基础上加上还是从中减去时区偏移量以得出本地时间。时区偏移量的有效范围为 -14:00 到 +14:00。时区偏移量的范围遵循 XSD 架构定义的 W3C XML 标准,与

32、SQL 2003 标准定义(12:59 到 +14:00)略有不同。可选的类型参数 fractional seconds precision 指定了秒小数部分的位数。该值可以是一个 0 到 7(100 纳秒)的整数。默认 fractional seconds precision 为 100ns(秒小数部分有 7 位)。此数据存储在数据库中,并以与 UTC 相同的方式在服务器中进行处理、比较、排序和索引。时区偏移量将保留在数据库中以供检索。给定时区偏移量将假定为可以识别夏时制时间 (DST),并会针对 DST 期间内的任何给定 datetime&

33、#160;进行调整。对于 datetimeoffset 类型,在插入、更新、转换或赋值操作中将验证 UTC 和本地(相对于一致的或转换的时区偏移量)datetime 值。如果检测到任何无效的 UTC 或本地(相对于一致的或转换的时区偏移量)datetime 值,将引发一个无效值错误。例如,9999-12-31 10:10:00 在 UTC 中有效,但在本地时间中会溢出时区偏移量 +13:50。对 ANSI 和 ISO 8601 的遵从性date 和 time 主题的“对 ANSI 和 ISO 8601 的遵从性”部分也适用于

34、 datetimeoffset。示例下例比较了将一个字符串分别转换为各种 date 和 time 数据类型所产生的结果。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 smalld

35、atetime) 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'

36、,CAST('2007-05-08 12:35:29.1234567+12:15' AS datetimeoffset(7) AS 'datetimeoffset IS08601'下面是结果集:数据类型输出Time12:35:29. 1234567Date2007-05-08Smalldatetime2007-05-08 12:35:00Datetime2007-05-08 12:35:29.123datetime22007-05-08 12:35:29. 1234567Datetimeoffset2007-05-08 12:35:29.1234567 +12:

37、15  smalldatetime (Transact-SQL)SQL Server 2008 R2其他版本1(共 1)对本文的评价是有帮助 评价此主题定义结合了一天中的时间的日期。此时间为 24 小时制,秒始终为零 (:00),并且不带秒小数部分。注意对于新的工作,请使用 time、date、datetime2 和 datetimeoffset 数据类型。这些类型符合 SQL 标准。它们更易于移植。time、datetime2 和 datetimeoffset提供更高精度的秒数。datetimeoffs

38、et 为全局部署的应用程序提供时区支持。有关所有 Transact-SQL 日期和时间数据类型及函数的概述,请参阅日期和时间函数 (Transact-SQL)。有关日期和时间数据类型及函数共有的信息和示例,请参阅使用日期和时间数据。smalldatetime 说明语法smalldatetime用法DECLARE MySmalldatetime smalldatetimeCREATE TABLE Table1 ( Column1 smalldatetime )默认的字符串文字格式(用于下级客户端)不适用日期范围1900-01-01 到 2079-06-06

39、1900 年 1 月 1 日到 2079 年 6 月 6 日时间范围00:00:00 到 23:59:592007-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

40、秒的值向下舍入为最接近的分钟数;大于或等于 29.999 秒的值向上舍入为最接近的分钟数。字符长度最高 19 位存储大小固定 4 个字节。精确度一分钟默认值1900-01-01 00:00:00日历公历(不包括完整的年份范围。)用户定义的秒的小数部分精度否时区偏移量感知和保留否夏时制感知否对 ANSI 和 ISO 8601 的遵从性smalldatetime 不符合 ANSI 或 ISO 8601。示例A. 将带秒数的字符串文字转换为 smalldatetime下例比较了将字符串文字中的秒数转换成 smalldatetime 时产生的结果。SELECT CAST(

41、'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:292007-05-08 12:35:002007-05-08 12:35:302007-05-08 12:36:002007-05-08 12:59:59.9982007-05-08 13:00:00B. 比较日期和时间数据类型下例比较

42、了将一个字符串分别转换为各种日期和时间数据类型时所产生的结果。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

43、-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'数据类型输出time12:35:29. 1234567date2007-05-08smalldatetim

44、e2007-05-08 12:35:00datetime2007-05-08 12:35:29.123datetime22007-05-08 12:35:29. 1234567datetimeoffset2007-05-08 12:35:29.1234567 +12:15time (Transact-SQL)SQL Server 2008 R2其他版本1(共 1)对本文的评价是有帮助 评价此主题定义一天中的某个时间。此时间不能感知时区且基于 24 小时制。有关所有 Transact-SQL 日期和时间数据类型及函数的概述,请参阅日期和时间函数 (Transact-SQL)。有关日期和

45、时间数据类型及函数共有的信息和示例,请参阅使用日期和时间数据。time 说明属性值语法time  (fractional second precision) 用法DECLARE MyTime time(7)CREATE TABLE Table1 ( Column1 time(7) )fractional seconds precision为秒的小数部分指定数字的位数。这可以是从 0 到 7 的整数。默认的小数精度是 7 (100ns)。用法DECLARE MyTime time(7)CREATE TABLE Table1 ( Column1&#

46、160;time(7) )默认的字符串文字格式(用于下级客户端)hh:mm:ss.nnnnnnn有关详细信息,请参阅使用日期和时间数据的“下级客户端的向后兼容性”部分。范围00:00:00.0000000 到 23:59:59.9999999各元素的范围hh 是表示小时的两位数字,范围为 0 到 23。mm 是表示分钟的两位数字,范围为 0 到 59。ss 是表示秒的两位数字,范围为 0 到 59。n* 是 0 到 7 位数字,范围为 0 到 9999999,它表示秒的小数部分。字符长度最小 8 位 (hh:mm:ss),最大 16 位 (hh:mm:ss.nnnnnnn)精度、小数

47、位数(用户只能指定小数位数)指定的小数位数结果 (精度, 小数位数)列长度(以字节为单位)小数秒精度time(16,7)57time(0)(8,0)30-2time(1)(10,1)30-2time(2)(11,2)30-2time(3)(12,3)43-4time(4)(13,4)43-4time(5)(14,5)55-7time(6)(15,6)55-7time(7)(16,7)55-7存储大小固定 5 个字节,是使用默认的 100ns 秒的小数部分精度时的默认存储大小。精确度100 纳秒默认值00:00:00此值用作从 date 隐式转换到 datetime

48、2 或 datetimeoffset 时追加的时间部分。用户定义的秒的小数部分精度有时区偏移量感知和保留无夏时制感知无time 支持的字符串文字格式下表显示的是适用于 time 数据类型的有效字符串文字格式。SQL Server说明hh:mm:ss:fractional secondsAMPMhh:mm:ss.fractional secondsAMPMhhAMPMhh AMPM如果小时值为 0,则不论是否指定了 AM,都表示午夜 (AM) 后的小时。当小时值等于 0 时,不能指定 PM。如果 AM 和 PM 均未指定,则小时值为 01 到 1

49、1 时,表示中午以前的小时。如果指定了 AM,则这些值表示中午以前的小时。如果指定了 PM,则这些值表示中午以后的小时。如果既未指定 AM,也未指定 PM,则小时值 12 表示始于中午的小时。如果指定了 AM,则该值表示始于午夜的小时。如果指定了 PM,则该值表示始于中午的小时。例如:12:01 是指中午过后 1 分钟,与 12:01 PM 的含义相同,而 12:01 AM 则指午夜过后 1 分钟。指定 12:01 AM 与指定 00:01 或 00:01 AM 等效。如果未指定 AM 或 PM,则小时值 13 到 23 表示中午以后的小时。如果指定了 PM,这些值也表示中午以后的小时。如果小

50、时值为 13 到 23,不能指定 AM。如果小时值为 24,则该值无效。若要表示午夜,请使用 12:00 AM 或 00:00。可以在毫秒之前加上冒号 (:) 或者句点 (.)。如果使用冒号,这个数字表示千分之一秒。如果使用句点,则单个数字表示十分之一秒,两个数字表示百分之一秒,三个数字表示千分之一秒。例如,12:30:20:1 表示到了 12:30 后又过了二十又千分之一秒;12:30:20.1 表示到了 12:30 后又过了二十又十分之一秒。ISO 8601说明hh:mm:sshh:mm:ss.fractional seconds· hh 是两位数,范围为 0 到 14,它表示时

51、区偏移量中的小时数。· mm 是两位数,范围为 0 到 59,它表示时区偏移量中的额外分钟数。ODBC说明t 'hh:mm:ss.fractional seconds'特定于 ODBC API。在 SQL Server 2008 中的工作方式与在 SQL Server 2005 中相同。time 对 ANSI 和 ISO 8601 标准的遵从性为满足向后兼容的需要以及与现有日期和时间类型保持一致,不支持 ISO 8601(5.3.2 和 5.3)规定的如下用法:用 24 点表示午夜和允许大于 59 的闰秒。SQL 标准 2003 未规定这些用法。默认字符串文字格式(用

52、于下级客户端)将遵照 SQL 标准格式(定义为 hh:mm:ss.nnnnnnn)。这种格式类似于 ISO 8601 对不包含秒小数部分的 TIME 的定义。示例A. 比较日期和时间数据类型下例比较了将一个字符串分别转换为各种 date 和 time 数据类型时所产生的结果。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('200

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论