日期:2014-05-16  浏览次数:20549 次

SQL2000的表中这样的自动计算字段怎么写?
SQL2000的表中这样的自动计算字段怎么写?
SQL Server2000有3个字段 ,date1,date2,flag
date1类型是日期型,表示开始时间
date2类型是日期型,表示结束时间
flag类型是bool 表示当前日期是否在 date1和date2之间
有没有方法就是这个表的字段flag的值能自动根据系统时间判断当前日期是否在
date1和date2之间,如果超过了就将flag设置为1 否则为0.
------解决方案--------------------
CREATE TABLE test(date1 DATETIME,date2 DATETIME,flag AS case when getdate() between date1 and date2 then 0 else 1 end    )


INSERT INTO test(date1,date2) values('2013-01-01','2014-04-01')

SELECT * FROM test
INSERT INTO test(date1,date2) values('2016-01-01','2017-04-01')
SELECT * FROM test

/*
date1                   date2                   flag
----------------------- ----------------------- -----------
2013-01-01 00:00:00.000 2014-04-01 00:00:00.000 0

(1 row(s) affected)

(1 row(s) affected)

date1                   date2                   flag
----------------------- ----------------------- -----------
2013-01-01 00:00:00.000 2014-04-01 00:00:00.000 0
2016-01-01 00:00:00.000 2017-04-01 00:00:00.000 1

*/

------解决方案--------------------
其实没必要自动计算 在需要的时候再计算有可能会更好。