2011-05-09 29 views
0

今日の日付以降にデータを入力できないように、日付のチェック制約が必要です。日付のチェック制約

すべて

+0

これには時間も含まれていますか? – gbn

+0

いいえちょうど日付 – martin

答えて

4

はこの試し感謝をお知らせください。またcast...date

を使用して、SQL Server 2008で時間の一部を削除するには

ALTER TABLE yourTable 
ADD CONSTRAINT yourDateTimeColumn CHECK (yourDateTimeColumn < GetDate()); 
+0

私はちょうどこれをチェック制約の式部分に追加しますか? – martin

+0

あなたのロジックは、OPが望んでいるものとは逆のものだと思う:あなたはdatetime値が将来であることを確認している、私はOPが値が過去であることを確認したいと思う。しかし、より多くの情報(データ型、SQL Serverのバージョン、関連する時間または日付のみなど)がなければ、とにかく明確な答えを出すことはできません。 – Pondlife

+0

アナライザでコードを実行すると、制約が直接追加されます。 – JTorrecilla

3

を、私はあなたが今日含む日付を持つことができると仮定します

ALTER TABLE yourTable 
ADD CONSTRAINT yourDateTimeColumn CHECK (
    CAST(yourDateTimeColumn as date) <= CAST(GETDATE() as date) 
    );