假如您需要存储某特定的时间信息却不包含日期时,就可以用到SQL Server2008中的TIME数据类型,SQL Server2008新增的TIME数据类型,将可以为您完美解决此问题。
SQL Server2008现在有了一个TIME数据类型,它允许你只存储一个时间值而没有时间。假如想要存储一个特定的时间信息而不涉及具体的日期时,这将非常的有用。TIME数据类型存储使用24小时制,它并不关心时区,支持高达100纳秒的精确度。TIME数据类型支持从0到7不同的精度,就像DATETIME2格式,它的磁盘开销是3到5个字节,取决与精度。TIME列的长度与精度如下表所示:
此处是一个如何使用不同的DATETIME2精度值来显示不同的时间格式的示例:
DECLARE @T0 time(0) = '16:59:11.1234567'; DECLARE @T1 time(1) = '16:59:11.1234567'; DECLARE @T2 time(2) = '16:59:11.1234567'; DECLARE @T3 time(3) = '16:59:11.1234567'; DECLARE @T4 time(4) = '16:59:11.1234567'; DECLARE @T5 time(5) = '16:59:11.1234567'; DECLARE @T6 time(6) = '16:59:11.1234567'; DECLARE @T7 time(7) = '16:59:11.1234567'; PRINT @T0; PRINT @T1; PRINT @T2; PRINT @T3; PRINT @T4; PRINT @T5; PRINT @T6; PRINT @T7;
当运行上述代码时将会得到如下结果:
16:59:11 16:59:11.1 16:59:11.12 16:59:11.123 16:59:11.1235 16:59:11.12346 16:59:11.123457 16:59:11.1234567
注意TIME(4),TIME(5)和TIME(6)在显示时进行了精度截断,这与SQL Server2008中的DATETIME2的行为是一致的。只存储时间部分的TIME数据类型列现在允许我们验证SQL Server的时间值以确保它们包含的是有效的时间,并且能够节省空间。
假如您需要存储某特定的时间信息却不包含日期时,就可以用到SQL Server2008中的TIME数据类型,SQL Server2008新增的TIME数据类型,将可以为您完美解决此问题。
SQL Server2008现在有了一个TIME数据类型,它允许你只存储一个时间值而没有时间。假如想要存储一个特定的时间信息而不涉及具体的日期时,这将非常的有用。TIME数据类型存储使用24小时制,它并不关心时区,支持高达100纳秒的精确度。TIME数据类型支持从0到7不同的精度,就像DATETIME2格式,它的磁盘开销是3到5个字节,取决与精度。TIME列的长度与精度如下表所示:
此处是一个如何使用不同的DATETIME2精度值来显示不同的时间格式的示例:
DECLARE @T0 time(0) = '16:59:11.1234567'; DECLARE @T1 time(1) = '16:59:11.1234567'; DECLARE @T2 time(2) = '16:59:11.1234567'; DECLARE @T3 time(3) = '16:59:11.1234567'; DECLARE @T4 time(4) = '16:59:11.1234567'; DECLARE @T5 time(5) = '16:59:11.1234567'; DECLARE @T6 time(6) = '16:59:11.1234567'; DECLARE @T7 time(7) = '16:59:11.1234567'; PRINT @T0; PRINT @T1; PRINT @T2; PRINT @T3; PRINT @T4; PRINT @T5; PRINT @T6; PRINT @T7;
当运行上述代码时将会得到如下结果:
16:59:11 16:59:11.1 16:59:11.12 16:59:11.123 16:59:11.1235 16:59:11.12346 16:59:11.123457 16:59:11.1234567
注意TIME(4),TIME(5)和TIME(6)在显示时进行了精度截断,这与SQL Server2008中的DATETIME2的行为是一致的。只存储时间部分的TIME数据类型列现在允许我们验证SQL Server的时间值以确保它们包含的是有效的时间,并且能够节省空间。