mssql时间与本月新变化

1. MSSQL日期时间介绍

MSSQL的日期时间有多种类型,包括:

1.1 datetime

datetime 存储从 1753 年 1 月 1 日 00:00:00 到 9999 年 12 月 31 日 23:59:59 以及介于这两个日期之间的时间值。datetime 值精度为 3.33 毫秒,存储在 8 字节中。

SELECT CONVERT(datetime,'2021-05-05 12:30:00')

使用 CONVERT 函数将字符型的时间转换为 datetime 类型。

1.2 datetime2

datetime2 存储值的范围从 0001 年 1 月 01 日 00:00:00 到 9999 年 12 月 31 日 23:59:59.9999999。datetime2 的精度可以在 100 纳秒(即:0.0000001 秒)和最高精度 7 精度(即:0.0000001 秒)。所以,它的精度比 datetime 更高,存储也更占用空间。

SELECT CONVERT(datetime2,'2021-05-05 12:30:00.1234567',7)

使用 CONVERT 函数将字符型的时间转换为 datetime2 类型,并指定精度。

1.3 date

date 存储日期,范围在 0001 年 1 月 1 日到 9999 年 12 月 31 日,它存储为 3 字节的数据(不包含时间信息)。

SELECT CONVERT(date,'2021-05-05')

使用 CONVERT 函数将字符型的日期转换为 date 类型。

2. MSSQL日期时间运算

2.1 DATEADD函数

DATEADD 函数用于将指定的时间间隔添加到日期或时间,返回新日期或时间。

SELECT DATEADD(MINUTE,30,'2021-05-05 12:00:00')

上例中,我们使用 DATEADD 函数将 30 分钟加到 '2021-05-05 12:00:00' 这个日期时间上,得到新的日期时间值 '2021-05-05 12:30:00.000'。

2.2 DATEDIFF函数

DATEDIFF 函数计算两个日期之间的时间间隔,返回值为整数。

SELECT DATEDIFF(DAY,'2021-05-01','2021-05-05')

上例中,我们使用 DATEDIFF 函数计算 '2021-05-01' 与 '2021-05-05' 之间相差的天数,得到结果为 4。

3. 本月MSSQL的新变化

2021年5月份,Microsoft 发布了 SQL Server 2019 CU10 和 SQL Server 2019 CU5,分别支持 Windows和Linux 平台。

3.1 增强 UTF-8 支持

CU10 增强了 SQL 对 UTF-8 字符集的支持,解决了使用 UTF-8 编码的时候统计字符串长度不准确的问题。

3.2 polished三个 operator

CU5 对 SQL Server 2019 中的三个 operator 进行了改进,polished三个 operator 是指:

BatchMode Window Aggregate operator

Hash Match operator

Sort operator

这些 operator 的改进使查询性能提升了 3-10%。

3.3 其他新特性

除了上述新特性外,SQL Server 2019 CU10 和 CU5 还添加了多种新特性,包括:

改善了针对 TempDB 的存储策略

对基于 Unicode 的纯文本函数的支持进行了优化

修复了由于选择性过滤选择错位导致的查询结果错误的问题

上述改进和新特性使得 SQL Server 2019 更加强大、更加稳定,同时也使得开发者在进行数据存储和查询的时候更加灵活、方便。

数据库标签