更新时间:2021-12-30 20:47:14
DECLARE @D0 datetime2(0) = '2008-05-10 06:59:11.1234567'; DECLARE @D1 datetime2(1) = '2008-05-10 06:59:11.1234567'; DECLARE @D2 datetime2(2) = '2008-05-10 06:59:11.1234567'; DECLARE @D3 datetime2(3) = '2008-05-10 06:59:11.1234567'; DECLARE @D4 datetime2(4) = '2008-05-10 06:59:11.1234567'; DECLARE @D5 datetime2(5) = '2008-05-10 06:59:11.1234567'; DECLARE @D6 datetime2(6) = '2008-05-10 06:59:11.1234567'; DECLARE @D7 datetime2(7) = '2008-05-10 06:59:11.1234567'; PRINT @D0; PRINT @D1; PRINT @D2; PRINT @D3; PRINT @D4; PRINT @D5; PRINT @D6; PRINT @D7;
2008-05-10 06:59:11 2008-05-10 06:59:11.1 2008-05-10 06:59:11.12 2008-05-10 06:59:11.123 2008-05-10 06:59:11.1235 2008-05-10 06:59:11.12346 2008-05-10 06:59:11.123457 2008-05-10 06:59:11.1234567
SET NOCOUNT ON; DECLARE @D DATE = '2001-03-1'; PRINT @D; SELECT CONVERT(char(10),@D,120) DATEONLY, @D [DATE-N-TIME];
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)在显示时进行了精度截断,这与我们前面看到的DATETIME2的行为是一致的。只存储时间部分的TIME数据类型列现在允许我们验证SQL Server的时间值以确保它们包含的是有效的时间,并且能够节省空间。