Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Отнять дату в запрос  [new]
Anton Rudov
Member

Откуда:
Сообщений: 5
Выполняется следующая штука процедура по расписанию:
exec OldClearDB '12.31.2016 00:00:00:0', '12.31.2016 23:59:59:0', 10

подскажите, пожалуйста, как подставить предыдущий день автоматически?

Заранее спасибо.
28 июн 17, 13:12    [20596479]     Ответить | Цитировать Сообщить модератору
 Re: Отнять дату в запрос  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20206
select dateadd(day,-1,cast(getdate() as date))
28 июн 17, 13:18    [20596519]     Ответить | Цитировать Сообщить модератору
 Re: Отнять дату в запрос  [new]
Anton Rudov
Member

Откуда:
Сообщений: 5
Msg 243, Level 16, State 1, Line 1
Type date is not a defined system type.
28 июн 17, 13:26    [20596551]     Ответить | Цитировать Сообщить модератору
 Re: Отнять дату в запрос  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20206
http://www.sqlfiddle.com/#!6/d4abc/15
28 июн 17, 13:39    [20596600]     Ответить | Цитировать Сообщить модератору
 Re: Отнять дату в запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 46953
Anton Rudov
Msg 243, Level 16, State 1, Line 1
Type date is not a defined system type.
У вас версия < SQL 2008 ?
28 июн 17, 13:44    [20596618]     Ответить | Цитировать Сообщить модератору
 Re: Отнять дату в запрос  [new]
Anton Rudov
Member

Откуда:
Сообщений: 5
SQL 2005
28 июн 17, 14:12    [20596746]     Ответить | Цитировать Сообщить модератору
 Re: Отнять дату в запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 46953
Anton Rudov
SQL 2005
Тип DATE появился в SQL2008.
Но, может, CAST вам и не нужен?
В конце концов, время можно обнулить сотней способов
28 июн 17, 16:14    [20597311]     Ответить | Цитировать Сообщить модератору
 Re: Отнять дату в запрос  [new]
Anton Rudov
Member

Откуда:
Сообщений: 5
Глупый вопрос, а как подставить нужную дату в запрос exec OldClearDB '12.31.2016 00:00:00:0', '12.31.2016 23:59:59:0', 10 ?
29 июн 17, 09:22    [20598575]     Ответить | Цитировать Сообщить модератору
 Re: Отнять дату в запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 46953
Anton Rudov
Глупый вопрос, а как подставить нужную дату в запрос exec OldClearDB '12.31.2016 00:00:00:0', '12.31.2016 23:59:59:0', 10 ?
Нужная - это какая?
В любом случае можно сформировать значения параметров в переменных,
а переменные передать в вызове процедуры.
29 июн 17, 11:36    [20599046]     Ответить | Цитировать Сообщить модератору
 Re: Отнять дату в запрос  [new]
Anton Rudov
Member

Откуда:
Сообщений: 5
iap,

Как дату получить я понял, а как ее подставить в процедуру?
29 июн 17, 15:17    [20599858]     Ответить | Цитировать Сообщить модератору
 Re: Отнять дату в запрос  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
Anton Rudov
iap,

Как дату получить я понял, а как ее подставить в процедуру?


DECLARE
  @date DATETIME = CONVERT( DATE, GETDATE() )
DECLARE
  @prev DATETIME = @date,
  @next DATETIME = DATEADD( DAY, 1, @date )
;
EXECUTE [somedb].[someschema].[someprocedure]
  @param1 = @prev,
  @param2 = @next
29 июн 17, 17:13    [20600378]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить