1

我在表中有一个 datetimeoffset 列,行中有不同的 TZ 偏移量。我想通过 BCL 类型 System.DateTimeOffset 上的ToLocalTime方法全部运行它们(由于夏令时,我不能只使用SWITCHOFFSET函数)。'clr enabled' 已重新配置。

“蛮力”方法似乎是使用静态方法创建一个静态类,例如:

public static class DateTimeUtils
{
    [SqlFunction]
    public static DateTimeOffset ToLocalTimeZone(DateTimeOffset input)
    {
        return input.ToLocalTime();
    }
}

有没有更简单的方法可以调用 BCL 类型/方法,而不必为此在数据库中创建程序集?

我希望我能够只调用 SQL 类型的方法,但没有这样的运气。尝试这样的事情:

DECLARE @foo datetimeoffset = getdate()

select [datetimeoffset]::ToLocalTime(@foo)

...给

Msg 258, Level 15, State 1, Line 3
Cannot call methods on datetimeoffset.

谢谢!

4

1 回答 1

1

不,没有。在研究了很多之后,我得出了这个结论。这是我对同一问题的解决方案:https ://stackoverflow.com/a/11063348/122718

于 2012-06-26T22:15:06.130 回答