CREATE table orders (
custNum INT NOT NULL CHECK(custNum >= 0 AND custNum <= 999999),
prodNum INT FOREIGN KEY REFERENCES product(prodNum),
date DATE NOT NULL DATE_FORMAT(date, '%d-%m-%Y') CHECK(date >= '01-01-1993'),
qty INT CHECK(qty >= 0 AND qty <= 100000),
PRIMARY KEY (custNum, prodNum, date)
);
あなたは私が何をしようとしている私のDATEをDD-MM-YYYYに、01-01-1993以降にフォーマットするにはどうすればよいですか?
date DATE NOT NULL DATE_FORMAT(date, '%d-%m-%Y') CHECK(date >= '01-01-1993'),
から見ることができるように、私はレコードを入力するとき、それはDD-MM-YYYY
とも後日01-01-1993
よりもする形式をチェックすることを確認することです。しかし、私はすべての日付の書式はほとんど私が欲しくないSELECT
ステートメントで動作することがわかります。私は日付の列の私のレコードを私が指定したのと同じフォーマットにしたい。あなたはどうやってそれを正確にしていますか?
ありがとう、何か助けていただきありがとうございます。私はSQLと制約を学んでいます。私は初心者ですので、私は理解しやすくなるために、できるだけシンプルにしたいと考えています(私の一行のステートメントに対する解決策が望ましい)。
EDIT:こんにちは、私は実際にはmySQL/MariaDBでそれを行うことを計画していますが、実際にはMicrosoft SQL Management Studioを使用しています。それがMicrosoft SQL Management Studioで動作できるのであれば、私はそれを感謝します。
sql server or mysql? – e4c5
こんにちは、私は実際にはmySQLでそれを行うことを計画していますが、実際にはMicrosoft SQL Management Studioを使用しているので、それが動作しないCHECKバグ(?)があります。それがMicrosoft SQL Management Studioで動作できるのであれば、私はそれを感謝します。 – Ken
あなたはクライアントとして管理スタジオを使用していますか? – e4c5