sql server检查结束日期大于开始日期

时间:2011-07-28 11:35:19

标签: tsql

我的表中有2列 - 开始日期和结束日期,它们都可以为空。如果两者都填写了值,我想确保结束日期大于开始日期。如何在SQL Server 2008中编写检查约束来执行此操作?

3 个答案:

答案 0 :(得分:2)

直截了当的事情?

WHERE (enddate IS NOT NULL AND startdate IS NOT NULL AND enddate > startdate)

答案 1 :(得分:0)

ALTER TABLE dbo.yourtable ADD CONSTRAINT CK_yourtable_dates
CHECK (ISNULL(startd, SYSDATETIME) < ISNULL (endd, SYSDATETIME))

答案 2 :(得分:0)

Alter table dbo.your_table ADD CONSTRAINT CK_Start_Date_before_End_Date
Check (Start_Date is null OR End_Date is null OR Start_Date < End_Date)