2016-03-19 22 views
0

以下は、作成したいテーブルのDDLです。ただし、「Appointment_datetime Appointment_datetime」の属性は、の、勤務時間(:8:00 AM〜5:00 PM)とします。私は将来の日付部分を-'CHECK(Appointment_datetime> = GETDATE())で得ることができます。しかし、この制約の8AMと5PMの間のオンタップをどうやって得るのですか?SQL DDL - 2属性のチェック制約

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 
    ) 

注:アカウントに土日祝日を取りたい場合は、それがより困難であり、おそらくユーザー定義関数が必要です。