特定のタイムゾーンの現在の時刻を取得する方法はありますか?
例: GetDateTime("モロッコ標準時")
タイムゾーン「モロッコ標準時」の現地時間を与える必要があります
前もってありがとう、マーリン
特定のタイムゾーンの現在の時刻を取得する方法はありますか?
例: GetDateTime("モロッコ標準時")
タイムゾーン「モロッコ標準時」の現地時間を与える必要があります
前もってありがとう、マーリン
質問がかなり古いことは知っていますが、答えが誰かに役立つかもしれません。
SQL Server 2016 を使用している場合は、新しい機能を使用できますAT TIME ZONE
。段階的に必要な結果に到達しましょう。
まず、関数SYSDATETIMEOFFSET()
を使用して現在の日付と時刻を UTC タイム ゾーンで取得します。この関数の戻り値の型は でDATETIMEOFFSET
、日付だけでなく、関連するタイム ゾーン情報も格納します。
SELECT SYSDATETIMEOFFSET()
-- Result is 2016-08-20 13:15:25.3760873 +03:00
次に、これとAT TIME ZONE
ステートメント。これはDATETIMEOFFSET
、必要なタイム ゾーンで返されます。
SELECT SYSDATETIMEOFFSET() AT TIME ZONE 'Morocco Standard Time'
-- Result is 2016-08-20 11:15:25.3760873 +01:00
さらに、タイム ゾーン情報を失い、 を使用するDATETIME
場合は、上記の結果を にキャストできますDATETIME
。
SELECT CAST( SYSDATETIMEOFFSET() AT TIME ZONE 'Morocco Standard Time' AS DATETIME)
-- Result is 2016-08-20 11:15:25.376