我有一个包含timesheet
表的 SQL Server 数据库。该表用于存储员工的角色。在我执行插入之前,我会检查员工在选定的日子里是否有任何预先存在的角色。
这是一个返回预先存在的角色计数的存储过程
set @retVal=(select count(fk_RoleID) from dbo.TimesheetTable where
(@startdate >= CAST((
STR( YEAR( StartDate ) ) + '/' +
STR( MONTH( StartDate ) ) + '/' +
STR( DAY( StartDate ) )
)
AS DATE
))-- AND EndDate <= '2012-08-30')
and
(@enddate < CAST(
(
STR( YEAR( EndDate ) ) + '/' +
STR( MONTH( EndDate ) ) + '/' +
STR( DAY( EndDate ) )
)
AS DATE
))
and fk_PersonnelID=@personnelID)
return @retVal
以下是一名员工的记录。
pk_ID fk_PersonnelID fk_RoleID StartDate EndDate dateCreated
62 1 26 2012-10-01 2012-10-02 2012-10-25 15:55:12.940
81 1 20 2012-10-04 2012-10-06 2012-10-30 14:50:28.300
如果我尝试插入开始日期2012-10-05
和结束日期的位置2012-10-11
,则查询无法捕获startdate
..并且插入发生
我究竟做错了什么?