Sql server SQL Server日期添加函数问题

Sql server SQL Server日期添加函数问题,sql-server,Sql Server,我试着从这个日期中减去一个小时——2016-08-25 1:19:30.560。我期待并希望得到2016-08-25 12:19:30.560 相反,我得到了:2016-08-25 00:19:30.560 如果我将日期设置为2016-08-25 2:19:30.560。然后我得到2016-08-2501:19:30.560。它做得很好 DECLARE @FakeCurrentDateTime1 datetime DECLARE @FakeCurrentDateTime2 datetime S

我试着从这个日期中减去一个小时——2016-08-25 1:19:30.560。我期待并希望得到2016-08-25 12:19:30.560

相反,我得到了:2016-08-25 00:19:30.560

如果我将日期设置为2016-08-25 2:19:30.560。然后我得到2016-08-2501: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

1:19:30.560
在SQL中是凌晨1:19。如果需要PM,则需要
13:19:30.560
,否则需要提供如下“PM”:


1:19:30.560
在SQL中是凌晨1:19。如果需要PM,则需要
13:19:30.560
,否则需要提供如下“PM”:


你是说下午1点吗?SQL中的下午1点是13:00。@AdamV。你应该写下答案并解释逻辑。你是说下午1点吗?SQL中的下午1点是13:00。@AdamV。你应该写下答案并解释逻辑。或者将时间表示为
13:19:30.560
。或者将时间表示为
13:19:30.560
SET @FakeCurrentDateTime1 = '2016-08-25 1:19:30.560 PM'