首页 > 解决方案 > 使用 datediff 检查约束

问题描述

SQL 新手

我遇到了一个问题,我试图实现一个检查表中两个日期字段的约束。约束应确保日期差异大于 7 天且小于 3 个月。

这是我尝试过的,但似乎没有用。

ALTER TABLE [dbo].[SA_Rental]  WITH CHECK ADD  CONSTRAINT 
[CHK_RentalDuration] CHECK  ((datediff(day,[DateRenting],            
[DateReturning])>(7)))
GO

ALTER TABLE [dbo].[SA_Rental]  WITH CHECK ADD  CONSTRAINT     
[CHK_RentalDuration1] CHECK  ((datediff(month,[DateRenting], 
[DateReturning])<(3)))
GO

ALTER TABLE [dbo].[SA_Rental] CHECK CONSTRAINT [CHK_RentalDuration]
GO

任何关于我哪里出错的想法或任何建议将不胜感激。

提前致谢。

标签: sqlsql-serverdateconstraintscheck-constraints

解决方案


尝试添加一张带有两个日期限制的支票:

ALTER TABLE [dbo].[SA_Rental] WITH CHECK
ADD CONSTRAINT [CHK_RentalDuration]
CHECK (DATEDIFF(day, [DateRenting], [DateReturning]) > 7 AND
       DATEDIFF(month, [DateRenting], [DateReturning]) < 3);

推荐阅读