0

下面是我要创建的表的 DDL。但是,我希望属性“ Appointment_datetime ”是未来日期和工作时间(上午 8:00 到下午 5:00 之间)。我可以使用 -'CHECK (Appointment_datetime >= GETDATE()) 获得未来的日期部分但是我如何在这个约束之上获得上午 8 点到下午 5 点之间的信息?

CREATE TABLE tAppointment
(
Appointment_ID       int        NOT NULL    PRIMARY KEY,
Appointment_datetime datetime   NOT NULL,   -- CHECK CONSTRAINTS NEEDED             
Appointment_week     int        NOT NULL,
Appointment_room     varchar(5) NOT NULL,   
Vet_ID               int        NOT NULL    REFERENCES tVet(Vet_ID),
Owner_ID             int        NOT NULL    REFERENCES tOwner(Owner_ID),
Pet_ID               int        NOT NULL    REFERENCES tPet(Pet_ID)
)
4

1 回答 1

0

您可以将其添加进去。这是使用以下方法的方法hour

CHECK (Appointment_datetime >= GETDATE() AND
       DATEPART(HOUR, GETDATE()) NOT BETWEEN 8 AND 16
      ) 

注意:如果你想把周末和节假日考虑在内,那就更难了,可能需要一个用户定义的函数。

于 2016-03-19T14:10:03.430 回答