Check-Einschränkung für die Herstellung sicher, dass ein Datum nicht in der Zukunft?

Ich versuche eine Tabelle erstellen, werden änderungen an den geschätzten Stunden der anderen Tabelle. Die Datenbank als ganzes ist ein Projekt-management-system für ein Unternehmen zu Arbeit zuweisen, um Ihre Mitarbeiter und erstellen Rechnungen für den Kunden.

Derzeit habe ich:

CREATE TABLE task_history
(
    task_history_id         NUMBER(5),
    previous_est_hours      NUMBER(3,1),
    change_date         DATE,
    reason_for_change       VARCHAR2(50),
    task_id             NUMBER(5),

CONSTRAINT TASKHIST_TASKHISTID_PK   PRIMARY KEY (task_history_id),
CONSTRAINT TASKHIST_TASKID_FK       FOREIGN KEY (task_id) REFERENCES task(task_id),
CONSTRAINT TASKHIST_TASKID_NN CHECK (task_id IS NOT NULL),
CONSTRAINT TASKHIST_CHANGEDATE_NONFUTURE CHECK (change_date <= sysdate)
);

change_date muss nicht sein, ein Datum in der Zukunft, muss es entweder heute oder in der Vergangenheit.
Der Letzte check-Einschränkung ist das problem. Wie ich es verstehe, können Sie nicht mithilfe der DATEPART-denn einen Grund habe ich vergessen, aber Sie können nicht. Ich habe auch versucht GETDATE() und jede andere Variante, die ich im Netz gefunden habe.
Wie kann ich das vermutlich einfache Aufgabe?

GETDATE() ist der TSQL-spezifisch. SYSDATE ist PLSQL-spezifische Mittel, um das aktuelle Datum und die Zeit, während CURRENT_TIMESTAMP ist die ANSI-alternative (unterstützt von der Mehrheit der Datenbanken). Sind Sie tatsächlich auf einen Fehler? Denn dies ist der erste von dem ich gehört habe nicht mit der DATEPART -, so würde ich gerne mehr hören. Ihre version von Oracle würde auch helfen.

InformationsquelleAutor solent_matt | 2011-01-19

Schreibe einen Kommentar