SQL:添加列约束,日期必须是月末

时间:2018-03-16 10:01:50

标签: sql sql-server constraints

SQL Server:我正在寻找一种方法来强制在数据库级别将日期列强制为该月的最后一天(注意: 当前的最后一天月)。有没有办法改变表来实现这个约束?

谢谢

2 个答案:

答案 0 :(得分:5)

您可以通过eomonth()函数实施检查约束以验证日期(即月末)

ALTER table t
ADD CONSTRAINT CHK_Date CHECK(<date> = eomonth(<date>))

答案 1 :(得分:1)

但是,您可以执行以下任何操作:

  • 在触发器中进行验证。应该在插入和更新之后。
  • 创建另一个包含所有可能的月末日期的表,并使用该列的外键。

Yogesh的回答是正确的。