2011-04-28 48 views
1

如何設置從8:00 A.M?開始的數據類型(時間)列。由於默認數據類型從午夜開始。SQL:將時間列設置爲從指定時間開始

有沒有辦法創建一個約束來設置從上午8:00開始的時間,並檢查插入的時間是否是8:00 A.M?

問候。

回答

2
ALTER TABLE tablename 
ADD CONSTRAINT CK_time CHECK(time > '08:00:00') 

您可能還想添加time < value約束,因此您有一個上限。

0

時間不是'開始'或'結束'在任何地方,這是一個單一的值。你的意思是隻允許列在08h00和18h00之間保持值(或其他)?如果是這樣,請查看CHECK約束。

您還需要考慮當某人插入或更新約束不允許的值時會發生什麼;你會得到一個錯誤,然後你可以在你的應用程序(或者可能存儲過程)中正確捕獲和處理。

或者,使用INSTEAD OF觸發器(最好除CHECK約束之外)將任何無效值更改爲有效值。

CHECK約束,觸發器,存儲過程和應用程序邏輯的最佳組合取決於您的應用程序體系結構。

相關問題