sql - 使用 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
任何关于我哪里出错的想法或任何建议将不胜感激。
提前致谢。
解决方案
尝试添加一张带有两个日期限制的支票:
ALTER TABLE [dbo].[SA_Rental] WITH CHECK
ADD CONSTRAINT [CHK_RentalDuration]
CHECK (DATEDIFF(day, [DateRenting], [DateReturning]) > 7 AND
DATEDIFF(month, [DateRenting], [DateReturning]) < 3);
推荐阅读
- amazon-web-services - CodePipeline 未将所有文件保存在源工件中
- css - 位置属性是否覆盖显示属性?
- r - r中的奇怪矩阵行为
- android - android sqlitedatabasehelper 数据库未找到问题/错误
- radiance - 有没有“你好世界!” 光辉的例子?
- java - 为什么这个简单的 Junit 5 测试不起作用
- sql - 使用 T-SQL 按能力级别组织团队,但一个团队具有混合能力级别
- php - 即使在特定日期没有访问,如何编辑此查询以获得最近 7 天的访问?
- java - 将字节数组转换为带分隔符的十六进制字符串?删除字符串中显示的最后一个字符?
- c++ - ld:未找到架构 x86_64 qt 的符号