Ответ 1
Попробуйте это
SELECT DATEDIFF(DAY, DATEADD(day, -1, '2013-03-13 00:00:00.000'), GETDATE())
ИЛИ
SELECT DATEDIFF(DAY, DATEADD(day, -1, @CreatedDate), GETDATE())
У меня есть запрос на выбор даты 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())
Попробуйте это
SELECT DATEDIFF(DAY, DATEADD(day, -1, '2013-03-13 00:00:00.000'), GETDATE())
ИЛИ
SELECT DATEDIFF(DAY, DATEADD(day, -1, @CreatedDate), GETDATE())
Я не уверен, что именно вы пытаетесь сделать, но я думаю, что эта функция SQL поможет вам:
SELECT DATEADD(day,-1,'2013-04-01 16:25:00.250')
Вышеуказанное даст вам 2013-03-31 16:25:00.250
.
Он возвращает вас ровно в один день и работает в любом стандартном формате даты и времени.
Попробуйте запустить эту команду и посмотрите, дает ли она вам то, что вы ищете:
SELECT DATEADD(day,-1,@CreatedDate)
Чтобы просто вычесть один день из сегодняшней даты:
Select DATEADD(day,-1,GETDATE())
(исходное сообщение использовалось -7 и было неверным)
По-видимому, вы можете вычесть количество дней, которое вы хотите от даты и времени.
SELECT GETDATE() - 1
2016-12-25 15:24:50.403
Это должно работать.
select DATEADD(day, -1, convert(date, GETDATE()))
SELECT DATEDIFF (
DAY,
DATEDIFF(DAY, @CreatedDate, -1),
GETDATE())
Попробуйте это, возможно, это поможет вам
SELECT DATEDIFF(DAY, DATEADD(DAY,-1,'2013-03-13 00:00:00.000') , GETDATE())
Вы можете попробовать это.
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
Надеюсь, это поможет решить вашу проблему.
Если честно, я просто использую:
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
должен это сделать.