【发布时间】:2019-11-07 02:45:08
【问题描述】:
我遇到了关于 SQL Server 内置函数 CONVERT 的问题。
从 SQL Server 2008 R2 迁移到 2016 后,发现这次迁移有一个不同之处。
我已经查看了最新 MS Doc 中的CONVERT 函数,当提供的数据类型参数为 null 时,它将返回 null。我想知道为什么 SQL Server 2008 R2 运行良好....
在 SQL Server 2008 R2 中:
SELECT CONVERT (DATE, GETDATE(), NULL)
返回一个日期值。
在 SQL Server 2016 中:
SELECT CONVERT (DATE, GETDATE(), NULL)
返回NULL。
PS:返回NULL 是正确的行为,但我想知道为什么早期版本返回日期值。
【问题讨论】:
-
FWIW,这种行为一直是一个错误,现在已经修复。在 SQL Server 2005 联机丛书中,已经记录了如果第三个参数是
NULL,则结果应该是NULL-- 引擎实际上从未这样做过。
标签: sql-server sql-server-2008-r2 sql-server-2016