2

SQL Server 2008 R2 に DateTime フィールドがあります。次のようなそのフィールドを照会するビューがいくつかあります

SELECT * 
FROM table1 
WHERE CONVERT(DATE, TransactionDate) = 'April 10 2012'.

サーバータイムはテキサス時間に設定されており、EST を使用してこのデータをクエリしたいと考えています。言い換えると

SELECT * 
FROM Table1
WHERE TransactionDate = 'April 10 2012 Eastern Standard Time'

これを達成するための最良の方法は何ですか?

4

1 に答える 1

0

これを試してみてください。

"DATETIMEOFFSETデータ型

現在、日付と時刻を列に保存する場合、その日付と時刻が属するタイム ゾーンは示されません。これは、異なるタイム ゾーンを持ついくつかの異なる国を含むデータを扱う場合に特に重要です。新しいデータ型DATETIMEOFFSETは、タイム ゾーンを認識し、24 時間制に基づく時刻と組み合わせた日付を定義します。次のスクリプトは、DATETIMEOFFSETデータ型の使用法を示しています。

DECLARE @dt DATETIMEOFFSET(0)

SET @dt = '2007-10-29 22:50:55 -1:00'

DECLARE @dt1 DATETIMEOFFSET(0)

SET @dt1 = '2007-10-29 22:50:55 +5:00'

SELECT DATEDIFF(hh,@dt,@Dt1)

http://www.sql-server-performance.com/2007/datetime-2008/

于 2012-04-10T19:58:29.833 に答える