SQL CLR 函数到 return 可空布尔值

SQL CLR Function to return nullable boolean

我正在尝试编写一个 SQLCLR 函数,它将 return 一个可为 null 的布尔值。如果我这样声明函数:public static SqlBoolean? IsTimeZoneDST(SqlString timeZone) 那么我在尝试使用程序集时会收到错误消息,指出 return 值的类型不匹配。在这种情况下,我是否遗漏了什么或者不可能 return 可为空的布尔值?

谢谢朱哈尔。我知道我会错过一些简单的东西。如果其他人需要,答案是将声明更改为:public static SqlBoolean IsTimeZoneDST(SqlString timeZone) 然后在您需要时 return SqlBoolean.Null

所有 .NET Sql* 类型都有一个 .Null 字段(静态 属性),它创建一个新实例,该实例将被视为 NULL 值T-SQL.

中的那个数据类型

此外,所有 Sql* 类型还有其他几个常见的属性和方法:

  • .IsNull 就 T-SQL 而言,测试该值是否为 NULL
  • .Value 将 return 等效的 .NET 数据类型,例如 String 用于 SqlString,或 int / Int32 用于SqlInt32

我认为,唯一需要使用 .NET 可空类型的时间是使用 T-SQL DATETIME2 数据类型,它映射到 DateTimeDateTime?.