比较变量中的日期,检查它们是否按升序排列

时间:2015-08-10 07:23:08

标签: sql sql-server tsql sql-server-2012

我有4个变量

@start_date                         date
@first_reminder_date                date
@second_reminder_date               date
@end_date                           date

我想检查它们是否按升序排列。 start_date也应该大于或等于当前日期。我的意思是它应该满足条件 -

getdate() <=@start_date <=@first_reminder_date <=@second_reminder_date <=end_date

最优化的方法是什么?

注意:所有日期变量也可以为空,即传递条件。 变量类型是日期。

1 个答案:

答案 0 :(得分:2)

试试你需要的东西。这种简单的测试没有真正最优化的方法:

if ((getdate() <= @start_date or @start_date is null)
    and (@start_date <= @first_reminder_date or @first_reminder_date is null)
    and (@first_reminder_date <= @second_reminder_date or @second_reminder_date is null)
    and (@second_reminder_date <= @end_date or @end_date is null)) then Begin ascending... End else Begin descending... End