我正在创建一个客户表,为了添加客户,客户必须年满 21 岁。我在出生日期添加了
CHECK
。它适用于除 21 年前的确切日期之外的所有日期。逻辑似乎是正确的。我不知道为什么要这样做。
CREATE TABLE customers(
customer_ID int,
dob date CHECK (dob < DATEADD(YEAR, -21, GETDATE()))
);
INSERT INTO customers VALUES(1, '09/26/2003');
--按预期工作。
不允许插入。
INSERT INTO customers VALUES(1, '09/25/2003');
--这应该被阻止。但它仍然允许
INSERT
GETDATE()
,不管它的名字如何,都会返回当前日期戳,包括时间。
您只想在当前日期进行操作吗?
dob date CHECK DATEADD(year, -21, CONVERT(DATE, GETDATE()))