2016-08-25 93 views
0

我想從這個日期減去一小時 - 2016-08-25 1:19:30.560。我期待並希望得到2016-08-25 12:19:30.560。SQL Server日期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點?下午1點在SQL中是13點。 –

+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'。 –