使用case表达式更新表列日期?

时间:2015-12-03 09:06:47

标签: sql sql-server date sql-update case

我需要使用数据更新column8,具体取决于其他两个包含日期(date1date2)的列 - 如果date1晚于date2column8YESNO

我写了这个:

update table1
set delay = case when date1 > date2 then 'YES' 
                 when date2 is NULL then 'YES' 
                 else 'NO'
            end

问题是它可能不是比较日期而是比较表达式的长度,因为除了空列之外我没有在每一列中......它告诉我它可能不知道我希望它作为日期进行比较但是数据库中的列采用日期格式YYYY-MM-DD

有没有办法更新我的代码或添加一些东西来比较日期而不是字符串长度?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以尝试CAST功能:

WHEN CAST(date1 AS DATE) > CAST(date2 AS DATE)