2016-08-25 20 views
0

この日付から1時間を差し引いています - 2016-08-25 1:19:30.560。 2016-08-25 12:19:30.560と期待しています。SQL Server date DATEADD関数の問題

は、代わりに私が取得:2016年8月25日00:19:30.560

私はその後、2016年8月25日2に日付を設定した場合:19:30.560。その後、2016-08-25 01:19:30.560になります。それは適切に行います。

DECLARE @FakeCurrentDateTime1 datetime 
DECLARE @FakeCurrentDateTime2 datetime 

SET @FakeCurrentDateTime1 = '2016-08-25 1:19:30.560' 

SET @FakeCurrentDateTime2 = DATEADD(hour, -1, @FakeCurrentDateTime1) 

SELECT @FakeCurrentDateTime2 

DECLARE @FakeCurrentDateTime3 datetime 
DECLARE @FakeCurrentDateTime4 datetime 

SET @FakeCurrentDateTime3 = '2016-08-25 2:19:30.560' 
SET @FakeCurrentDateTime4 = DATEADD(hour, -1, @FakeCurrentDateTime3) 

SELECT @FakeCurrentDateTime4 
+6

あなたは1 PMを意味していますか?午後1時はSQLでは13:00です。 –

+0

@AdamV。 。 。あなたは論理を書いて答えて説明するべきです。 –

答えて

3

1:19:30.560はSQLで1:19 AMです。あなたがPMをしたい場合は、代わりに13:19:30.560を必要とするか、あるいはあなたがそうのような「PM」を提供する必要があります

SET @FakeCurrentDateTime1 = '2016-08-25 1:19:30.560 PM' 
+2

時間を「13:19:30.560」と表現してください。 –