私は現在使用しています:
SELECT DATEPART(TZ, SYSDATETIMEOFFSET())
ただし、オフセットは分単位で返されます。「-300」ではなく「-05:00」の形式を維持したい
ありがとうございました。
私は現在使用しています:
SELECT DATEPART(TZ, SYSDATETIMEOFFSET())
ただし、オフセットは分単位で返されます。「-300」ではなく「-05:00」の形式を維持したい
ありがとうございました。
MS SQL Server では、使用することもできます
SELECT DATENAME(tz, SYSDATETIMEOFFSET())
オフセットを含む nvarchar を返します
datetimeoffset 変数の末尾にある正確な文字列 '-05:00' を抽出する場合は、SQL Server の文字列操作を使用できます。組み込みの SQL DateTime 関数を使用してこれを行うことはできないと思います。CAST 関数を使用できます。これは、デフォルトで ISO 8601 形式になっていると思います。
declare @timeStr nvarchar(50) = CAST(SYSDATETIMEOFFSET() as nvarchar(50))
select right(@timeStr, 6)
より明確にしたい場合は、フォーマット タイプ 126 で CONVERT 関数を使用して、SQL Server に ISO 8601 を使用するよう明示的に指示できます。
declare @timeStr nvarchar(50) = CONVERT(nvarchar(50), SYSDATETIMEOFFSET(), 126)
select right(@timeStr, 6)
私のタイムゾーンでのこれらのアプローチは両方とも次のように返されます。
-06:00
CAST と CONVERT の詳細については、こちらを参照してください。