我正在尝试编写一个 SQLCLR 函数,它将返回一个可为 null 的 bool 值。如果我这样声明函数:public static SqlBoolean? IsTimeZoneDST(SqlString timeZone)
然后我在尝试使用程序集时收到错误消息,指出返回值的类型不匹配。在这种情况下,我是否遗漏了什么或者无法返回可为 null 的 bool 值?
最佳答案
所有 .NET Sql*
类型都有一个 .Null
字段(静态属性),它创建一个新实例,该实例将被视为一个 NULL
T-SQL 中该数据类型的值。
此外,所有 Sql*
类型还有其他几个通用属性和方法:
.IsNull
就 T-SQL 而言,测试值是否为NULL
.Value
将返回等效的 .NET 数据类型,例如SqlString
的String
或int
/Int32
为SqlInt32
等
我认为,唯一需要使用 .NET 可空类型的时间是使用 T-SQL DATETIME2
数据类型时,它映射到 DateTime
或 DateTime?
。
关于c# - SQL CLR 函数返回可为空的 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42906337/