4

私は現在使用しています:

SELECT DATEPART(TZ, SYSDATETIMEOFFSET())

ただし、オフセットは分単位で返されます。「-300」ではなく「-05:00」の形式を維持したい

ありがとうございました。

4

2 に答える 2

7

MS SQL Server では、使用することもできます

SELECT DATENAME(tz, SYSDATETIMEOFFSET())

オフセットを含む nvarchar を返します

実行結果のスクリーンショット

于 2016-06-08T08:37:37.760 に答える
5

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 の詳細については、こちらを参照してください

于 2012-12-27T22:11:35.540 に答える