TSQL:我可以使用getdate()和DATEPART或类似的函数来引用未来的日期吗?

时间:2011-09-15 20:10:10

标签: tsql sql-server-2008-r2 ssms

如果指定的日期不是将来的两天,我需要在tsql中使用if语句来中断存储过程的执行。

@date是存储过程的参数之一。用户知道将其格式化为mm / dd / yy(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

- 请原谅goto的。

这看起来有用吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

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是一个仅限日期的组件,并且没有时间。

答案 1 :(得分:0)

你应该看一下DATEADD

类似的东西:

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

虽然您可能需要摆脱小时/分钟/秒/毫秒部分。