0
我想確保一個人的出生日期必須小於當前日期。 所以我在一個表中宣稱:在日期上使用檢查約束
staff_dob SMALLDATETIME NOT NULL CHECK (GETDATE() < staff_dob)
但是,當我跟上了檢查約束越來越衝突。我該如何解決?我需要將GETDATE()合成爲我使用的正確格式嗎?我不確定如何去做。
我想確保一個人的出生日期必須小於當前日期。 所以我在一個表中宣稱:在日期上使用檢查約束
staff_dob SMALLDATETIME NOT NULL CHECK (GETDATE() < staff_dob)
但是,當我跟上了檢查約束越來越衝突。我該如何解決?我需要將GETDATE()合成爲我使用的正確格式嗎?我不確定如何去做。
試試這個代碼:
drop table test
create table test
(staff_dob datetime check (staff_dob < getdate()))
--this insert will fail
insert test
(staff_dob)
values
('1/1/2013')
--this insert will succeed
insert test
(staff_dob)
values
('1/1/2011')
我認爲自己的支票比較是錯誤的方向。
看看Creating and Modifying CHECK Constraints
CREATE TABLE [dbo].[Staff](
[staffid] [int] NULL,
[dob] [date] NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Staff] WITH CHECK ADD CONSTRAINT [CK_Staff] CHECK (([dob]<getdate()))
GO
ALTER TABLE [dbo].[Staff] CHECK CONSTRAINT [CK_Staff]
GO
希望這有助於
Nope..didn't工作 – nfnmy
是它的日期輸入應該是怎麼樣的?我一直試圖12-DEC-1988年爲例子,它甚至沒有工作 – nfnmy
這是整個腳本:DROP TABLE測試 創建表測試 (staff_dob日期時間檢查(staff_dob