之間我有一個包含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 [email protected])
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
..並且插入發生
我做錯了什麼?
其實YYYY-MM-DD是不是安全無論是。嘗試使用SET LANGUAGE FRENCH。無論如何,你的代碼是正確的,沒有理由將它們解析爲字符串,但是你可能需要消除時間。 –
@AaronBertrand你是對的。我應該爲美國安裝指定默認值。我會刪除那部分。 –