2016-03-19 31 views
0

下面是我要創建的表的DDL。但是,我希望屬性'約會日期時間'爲未來日期和工作時間(上午8:00至下午5:00之間)。我可以通過-'CHECK(Appointment_datetime> = GETDATE())獲取未來日期部分,但是如何在約束的上午8點和下午5點之間獲得?SQL DDL - 2檢查1個屬性的約束

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) 
) 
+1

請用您正在使用的數據庫標記您的問題。 –

回答

0

您可以再補充它下面是一個使用hour的方法:

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

注意:如果你想利用週末和節假日在內,這是比較困難的,可能需要用戶定義的功能。