我有这个存储过程,它需要日期来显示日期范围之间的数据,但它总是显示所有数据。它应该显示在指定日期范围之间的数据,但它不会。为什么?
Select CaseLetters.pk_CaseLetters_CaseLetterID, CaseLetters.CaseLetterNo, CaseLetters.CaseLetterComments, Convert(varchar, CaseLetters.CaseLetterDate, 106) as CaseLetterDate,
CaseLetters.CaseLetterEntryDateTime, CaseLetters.fk_Cases_CaseLetters_CaseID, Cases.CaseNo, CaseLetters.fk_WebUsers_CaseLetters_UserID, CaseLetterDate, ConcernedOffices.ConcernedOfficeName,
Districts.DistrictName, CaseLetters.LetterFrom, CaseLetters.LetterTo, CaseLetters.LetterBody
From CaseLetters
Inner Join Cases ON Cases.pk_Cases_CaseID = CaseLetters.fk_Cases_CaseLetters_CaseID
Inner Join ConcernedOffices ON ConcernedOffices.pk_ConcernedOffices_ID = CaseLetters.fk_ConcernedOffices_CaseHearings_ConcernedOfficeID
Inner Join Districts ON Districts.pk_Districts_DistrictID = ConcernedOffices.fk_Districts_ConcernedOffices_DistrictID
Inner Join Web_Users ON Web_Users.UserID = CaseLetters.fk_WebUsers_CaseLetters_UserID
Where Cases.CaseNo like '%'+ @CaseNo +'%' AND
(CaseLetters.CaseLetterDate >= @DateFrom AND
CaseLetters.CaseLetterDate < DATEADD(DAY, 1, @DateTo))
DateFrom
和DateTo
属于Datetime
数据类型。
答案 0 :(得分:0)
您可以使用 BETWEEN :
Select CaseLetters.pk_CaseLetters_CaseLetterID, CaseLetters.CaseLetterNo, CaseLetters.CaseLetterComments, Convert(varchar, CaseLetters.CaseLetterDate, 106) as CaseLetterDate,
CaseLetters.CaseLetterEntryDateTime, CaseLetters.fk_Cases_CaseLetters_CaseID, Cases.CaseNo, CaseLetters.fk_WebUsers_CaseLetters_UserID, CaseLetterDate, ConcernedOffices.ConcernedOfficeName,
Districts.DistrictName, CaseLetters.LetterFrom, CaseLetters.LetterTo, CaseLetters.LetterBody
From CaseLetters
Inner Join Cases ON Cases.pk_Cases_CaseID = CaseLetters.fk_Cases_CaseLetters_CaseID
Inner Join ConcernedOffices ON ConcernedOffices.pk_ConcernedOffices_ID = CaseLetters.fk_ConcernedOffices_CaseHearings_ConcernedOfficeID
Inner Join Districts ON Districts.pk_Districts_DistrictID = ConcernedOffices.fk_Districts_ConcernedOffices_DistrictID
Inner Join Web_Users ON Web_Users.UserID = CaseLetters.fk_WebUsers_CaseLetters_UserID
Where Cases.CaseNo like '%'+ @CaseNo +'%' AND
(CaseLetters.CaseLetterDate BETWEEN @DateFrom AND DATEADD(DAY, 1, @DateTo))