Вычесть один день из даты и времени

У меня есть запрос на выбор даты diff между 2 днями как:

SELECT DATEDIFF(DAY, @CreatedDate , GETDATE())

Ex :

SELECT DATEDIFF(DAY, '2013-03-13 00:00:00.000' , GETDATE())

Мне нужно, чтобы работа запроса была такой, что вычитает день из созданного дня:

SELECT DATEDIFF(DAY, **@CreatedDate- 1** , GETDATE())

Ответ 1

Попробуйте это

SELECT DATEDIFF(DAY,  DATEADD(day, -1, '2013-03-13 00:00:00.000'), GETDATE())

ИЛИ

SELECT DATEDIFF(DAY,  DATEADD(day, -1, @CreatedDate), GETDATE())

Ответ 2

Я не уверен, что именно вы пытаетесь сделать, но я думаю, что эта функция SQL поможет вам:

SELECT DATEADD(day,-1,'2013-04-01 16:25:00.250')

Вышеуказанное даст вам 2013-03-31 16:25:00.250.

Он возвращает вас ровно в один день и работает в любом стандартном формате даты и времени.

Попробуйте запустить эту команду и посмотрите, дает ли она вам то, что вы ищете:

SELECT DATEADD(day,-1,@CreatedDate)

Ответ 3

Чтобы просто вычесть один день из сегодняшней даты:

Select DATEADD(day,-1,GETDATE())

(исходное сообщение использовалось -7 и было неверным)

Ответ 4

По-видимому, вы можете вычесть количество дней, которое вы хотите от даты и времени.

SELECT GETDATE() - 1

2016-12-25 15:24:50.403

Ответ 5

Это должно работать.

select DATEADD(day, -1, convert(date, GETDATE()))

Ответ 6

SELECT DATEDIFF (
    DAY, 
    DATEDIFF(DAY, @CreatedDate, -1), 
    GETDATE())

Ответ 7

Попробуйте это, возможно, это поможет вам

SELECT DATEDIFF(DAY, DATEADD(DAY,-1,'2013-03-13 00:00:00.000') , GETDATE())

Ответ 8

Вы можете попробовать это.

Timestamp = 2008-11-11 13: 23: 44.657;

SELECT DATE_SUB(OrderDate,INTERVAL 1 DAY) AS SubtractDate FROM Orders

вывод: 2008-11-10 13: 23: 44.657

Надеюсь, это поможет решить вашу проблему.

Ответ 9

Если честно, я просто использую:

select convert(nvarchar(max), GETDATE(), 112)

что дает YYYYMMDD и минус один из него.

Или более правильно

select convert(nvarchar(max), GETDATE(), 112) - 1 

для даты вчерашнего дня.

Замените Getdate() своим значением OrderDate

select convert(nvarchar (max),OrderDate,112)-1 AS SubtractDate FROM Orders

должен это сделать.