web-dev-qa-db-ja.com

日時SQL列データに1時間を追加するにはどうすればよいですか?

クエリのこの部分を使用して、行が追加された日時のテーブル列を作成しました。

order_date datetime NOT NULL DEFAULT GETDATE()

また、新しい行が作成されるたびに、order_dateのデータは次のように設定されます。

Apr 8 2014 9:52AM

何らかの理由で、行が作成され、order_date列データが設定されると、時間が1時間前に設定されます。たとえば、上記のApr 8 2014 9:52AMの列データは午前10時52分に設定されました。

現在の時刻と一致するように1時間先に設定する方法はありますか?

助けてくれてありがとう。すべての助けは大歓迎です。

5
Kelsey

DATETIMEの代わりに [〜#〜] datetimeoffset [〜#〜] をdaatypeとして使用することを検討する必要があります。

タイムゾーンを認識し、24時間制に基づく時刻と組み合わせた日付を定義します。

SYSDATETIMEOFFSET( )で使用できます。

Returns a datetimeoffset(7) value that contains the date and time of the computer on which the instance of SQL Server is running. The time zone offset is included.

例:

 CREATE TABLE DateTest (id INT, order_date DATETIMEOFFSET NOT NULL DEFAULT SYSDATETIMEOFFSET())
 INSERT INTO DateTest (id) VALUES (1)
 SELECT * FROM DateTest
4
Karl Kieninger

DATEADD()を使用する

DATEADD(hh, 1, order_date)

編集:

時刻が1時間前に設定されている場合は、システム時刻が間違っている可能性があります。したがって、サーバー管理者に修正を依頼する方がよいでしょう。

20
Nath