行の TZ オフセットが異なるテーブルに datetimeoffset 列があります。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.
ありがとう!