适用于: SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
分析平台系统 (PDW)
Microsoft Fabric 中的 SQL 分析端点
Microsoft Fabric 中的仓库
定义一天中的某个时间。 此时间不能感知时区且基于 24 小时制。
CREATE TABLE Table1 ( Column1 time(7) )
fractional seconds scale 为秒的小数部分指定数字的位数。
这可以是从 0 到 7 的整数。 对于 Informatica,这可以是从 0 到 3 的整数。
默认小数位数为 7 (100ns)。
在 Microsoft Fabric 中,它可以是 0 到 6 的整数,没有默认值。 必须在 Microsoft Fabric 中指定精度。
默认的 字符串文字格式
(用于下级客户端)
对于 Informatica,为 hh:mm:ss[.nnnnnnn])
有关详细信息,请参阅下级客户端的后向兼容性部分。
范围 00:00:00.0000000 到 23:59:59.(对于 Informatica,为 00:00:00.000 到 23:59:59.999) 各元素的范围 hh 是表示小时的两位数字,范围为 0 到 23。
mm 是表示分钟的两位数字,范围为 0 到 59。
ss 是表示秒的两位数字,范围为 0 到 59。
n* 是 0 到 7 位数字,范围为 0 到 ,它表示秒的小数部分。 对于 Informatica,n* 是零到三位数字,范围为 0 到 999。
字符长度 最小 8 位 (hh:mm:ss),最大 16 位 (hh:mm:ss.nnnnnnn)。 对于 Informatica,最大值为 12 位 (hh:mm:ss.nnn)。 精度、小数位数
(用户只能指定小数位数)
请参阅下表。 存储大小 固定 5 个字节,是使用默认的 100ns 秒的小数部分精度时的默认存储大小。 在 Informatica 中,默认为 4 个字节,固定不变,同时秒的小数部分精度默认为 1 毫秒。 精确度 100 纳秒(Informatica 中为 1 毫秒) 默认值 00:00:00
此值用作从 date 隐式转换到datetime2 或 datetimeoffset 时追加的时间部分 。
用户定义的秒的小数部分精度 是 时区偏移量感知和保留 否 夏时制感知 否
seconds
精准率
time (16,7)[Informatica 中为 (12,3)] 5(Informatica 中为 4) 7(Informatica 中为 3) time(0) (8,0) 3 0-2 time(1) (10,1) 3 0-2 time(2) (11,2) 3 0-2 time(3) (12,3) 4 3-4 time(4)* (13,4) 4 3-4 time(5)* (14,5) 5 5-7 time(6)* (15,6) 5 5-7 time(7)* + (16,7) 5 5-7
* 在 Informatica 中不受支持。
+ 在 Microsoft Fabric 中不受支持。
下表显示的是适用于 time 数据类型的有效字符串文字格式。
hh:mm[:ss][.fractional seconds][AM][PM]
hhAM[PM]
hh AM[PM]
如果小时值为 0,则不论是否指定了 AM,都表示午夜 (AM) 后的小时。 当小时值等于 0 时,不能指定 PM。
如果 AM 和 PM 均未指定,则小时值为 01 到 11 时,表示中午以前的小时。 如果指定了 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,这些值也表示中午以后的小时。 如果小时值为 13 到 23,不能指定 AM。
如果小时值为 24,则该值无效。 若要表示午夜,请使用 12:00 AM 或 00:00。
可以在毫秒之前加上冒号 (:) 或者句点 (.)。 如果使用冒号,这个数字表示千分之一秒。 如果使用句点,则单个数字表示十分之一秒,两个数字表示百分之一秒,三个数字表示千分之一秒。 例如,12:30:20:1 表示到了 12:30 后又过了二十又千分之一秒;12:30:20.1 表示到了 12:30 后又过了二十又十分之一秒。
hh:mm[:ss][.fractional seconds]
hh 是两位数,介于 0 和 23 范围之间,表示时区偏移小时数。
mm 是两位数,范围为 0 到 59,它表示时区偏移量中的额外分钟数。
为满足向后兼容的需要以及与现有日期和时间类型保持一致,不支持 ISO 8601(5.3.2 和 5.3)规定的如下用法:用 24 点表示午夜和允许大于 59 的闰秒。
默认字符串文字格式(用于下级客户端)将遵照 SQL 标准格式(定义为 hh:mm:ss[.nnnnnnn])。 这种格式类似于 ISO 8601 对不包含秒小数部分的 TIME 的定义。
某些下级客户端不支持 time、time、datetime2 和 datetimeoffset 数据类型。 下表显示了 SQL Server 上级实例与下级客户端之间的类型映射。
当转换为日期和时间数据类型时,SQL Server 将会拒绝它无法识别为日期或时间的所有值。 有关对日期和时间数据使用 CAST 和 CONVERT 函数的信息,请参阅 CAST 和 CONVERT (Transact-SQL)
本部分介绍当 time 数据类型转换为其他日期和时间数据类型时发生的情况。
转换到 time(n) 时,会复制小时、分钟和秒数。 当目标精度小于源精度时,将对秒的小数部分进行向上舍入,以适合目标精度。 下面的示例显示了将 值转换为 值的结果。
结果集如下。
如果转换到“date”,转换失败,并引发错误消息 206:“操作数类型冲突: date 与 time 不兼容”。
转换到 datetime 时,会复制小时、分钟和秒数,且日期部分设为“1900-01-01”。 当 time(n) 值的秒的小数部分精度大于三位时,datetime 结果将被截断。 下面的代码显示将 值转换为 值的结果。
结果集如下。
转换到 smalldatetime 时,日期设置为“1900-01-01”,小时和分钟值向上舍入。 秒和秒的小数部分设置为 0。 下面的代码显示将 值转换为 值的结果。
显示分钟值的舍入:
结果集如下。
显示小时值的舍入:
结果集如下。
如果转换到 datetimeoffset(n),则日期设置为“1900-01-01”,且复制时间。 时区偏移量设置为 +00:00。 当 time(n) 值秒的小数部分精度大于 datetimeoffset(n) 值的精度时,将对值进行向上舍入以适合精度。 下面的示例显示将 值转换为 类型的结果。
结果集如下。
转换到 datetime2(n) 时,日期设置为“1900-01-01”,复制时间部分,时区偏移量设置为 00:00。 当 datetime2(n) 值秒的小数部分精度大于 time(n) 值时,将对值进行向上舍入以适合精度。 下面的示例显示了将 值转换为 值的结果。
结果集如下。
如果字符串所有部分的格式均有效,则允许从字符串文字转换为日期和时间类型。 否则,将引发运行时错误。 从日期和时间类型向字符串文字进行的未指定样式的隐式转换或显式转换将采用当前会话的默认格式。 下表显示用于将字符串文字转换为 time 数据类型的规则。
下例比较了将一个字符串分别转换为各种 date 和 time 数据类型时所产生的结果 。
下表列出了可插入到数据类型为 time(7) 的一个列中的不同字符串文字,以及在插入后存储到该列中的对应值。
下表中的第一列显示的是时间字符串文字,第二列显示的是日期或时间数据类型,第一列中的时间字符串文字将插入到第二列中与之对应的数据类型的数据库表列中。 第三列显示的是将存储在对应数据库表列中的值。
CAST 和 CONVERT (Transact-SQL)
到此这篇时钟符号代码(时钟符号代码大全)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/kjbd-jg/39043.html