如何比较计算列中的日期?

时间:2014-08-07 19:08:35

标签: sql-server date calculated-columns

DateColumn的类型为date。我想这样做:

ALTER TABLE MyTable ADD MyComputedColumn AS (DateColumn < '2010-12-31');

我也尝试过:

ALTER TABLE MyTable ADD MyComputedColumn AS (DateColumn < convert(date, '2010-12-31'));

但是存在语法错误。什么是正确的语法?

2 个答案:

答案 0 :(得分:4)

SQL Server没有直接表示“true”和“false”的数据类型。您必须使用case语句并返回基本类型。

ALTER TABLE MyTable ADD MyComputedColumn AS (CASE WHEN (DateColumn < '2010-12-31') THEN 1 ELSE 0 END);

答案 1 :(得分:1)

我猜你想要这个有点字段:

ALTER TABLE MyTable ADD MyComputedColumn AS (ISNULL(CONVERT(bit,case when (DateColumn < '2010-12-31') 
then 0 
else 1 
end),0))