使用datediff检查约束

时间:2018-09-08 03:27:48

标签: sql sql-server date constraints check-constraints

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

关于我哪里出了问题的任何想法,或者任何建议,将不胜感激。

谢谢。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

感谢您的答复。仔细检查之后,我意识到它正在工作,但是没有按照我想要的去做,所以我认为它没有用。我只是基本上将其从“ <7”更改为“ <= 7”,几个月来也一样。

无论如何,感谢您的回复,谢谢。