2011-04-28 105 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约束,触发器,存储过程和应用程序逻辑的最佳组合取决于您的应用程序体系结构。

相关问题