在SQL中,如果是date,则将dateColumn1与dateColumn2进行比较

时间:2014-08-27 05:19:36

标签: sql sql-server case where

真的不知道什么是关于我的问题的最佳标题。 我甚至不知道这是否可行。我会抓住一切机会。

让我们回答我的问题。 我有@dateStart和@dateEnd 然后我有2列日期。 让我们将它命名为例如dateCol1和dateCol2 是否可以在

上创建条件
Select * From table Where

案例1如果@dateStart大于抽样日期'1/01/2014'那么它会推进到条件

dateCol1 between @dateStart and @dateEnd

否则,如果@dateStart小于该日期,我可能会有

的条件
dateCol2 between @dateStart and @dateEnd

我的SQL不是很好,所以如果有人能在这里帮助我,我会非常感激。 顺便说一句,我正在使用microsoft SQL

2 个答案:

答案 0 :(得分:2)

Select * From table Where case when @dateStart > '1/01/2014' then dateCol1 else dateCol2 end
between @dateStart and @dateEnd

尝试此解决方案

答案 1 :(得分:1)

使用CASE WHEN ... ELSE

 CASE
   WHEN Boolean_expression THEN.       
 result_expression [ ...n ] 
   [ ELSE else_result_expression ] 
END