TSQL: можно ли использовать getdate () и DATEPART или аналогичную функцию для ссылки на будущую дату? - PullRequest
0 голосов
/ 16 сентября 2011

Мне нужно использовать оператор if в tsql, чтобы прервать выполнение хранимой процедуры, если указанная дата не наступит через два дня.

@ date - это один из параметров хранимого процесса. Пользователи знают, как правильно отформатировать его в формате мм / дд / гг (tsql, формат даты 1)

Проверьте это:

date_check:
if @date <> convert(varchar, getdate(), 1)+datepart(day, 2)
begin
print 'Date is not two days in the future. Please enter an acceptable date.'
goto the_end
end
else
goto part_2

- Прошу прощения у Гото.

Похоже, это может работать?

Спасибо!

Ответы [ 2 ]

1 голос
/ 16 сентября 2011
if @date <> dateadd(day, 2, convert(datetime, convert(varchar, getdate(), 101)))
begin
    print 'Date is not two days in the future. Please enter an acceptable date.'
end

Предполагается, что @date является компонентом только для даты и что времени нет.

0 голосов
/ 16 сентября 2011

Вы должны посмотреть на DATEADD.

Что-то вроде:

IF @date <> DATEADD(day, 2, GETDATE()) 

Хотя вам, вероятно, потребуется избавиться от части часов / минут / секунд / миллисекунд.

...