2016-03-19 23 views
0

Unten ist DDL für die Tabelle, die ich erstellen möchte. Ich möchte jedoch, dass das Attribut 'Appointment_datetime' ein zukünftiges Datum ist und während der Arbeitszeit (zwischen 8:00 Uhr und 17:00 Uhr). Ich kann den zukünftigen Datumsteil mit 'CHECK (Appointment_datetime> = GETDATE()) bekommen. Aber wie komme ich zwischen 8 Uhr morgens und 5 Uhr abends über diese Einschränkung hinaus?SQL DDL - 2 CHECK Constraints auf 1 Attribut

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

Bitte kennzeichnen Sie Ihre Frage mit der von Ihnen verwendeten Datenbank. –

Antwort

0

Sie können es nur hinzufügen, in Hier ist eine Methode, mit der hour.

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

Hinweis: Wenn Sie an Wochenenden und Feiertagen berücksichtigen wollen, ist schwieriger und wahrscheinlich erfordert eine benutzerdefinierte Funktion.