为什么我的程序没有显示指定日期范围之间的数据?

时间:2016-01-18 07:51:20

标签: sql sql-server tsql

我有这个存储过程,它需要日期来显示日期范围之间的数据,但它总是显示所有数据。它应该显示在指定日期范围之间的数据,但它不会。为什么?

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))

DateFromDateTo属于Datetime数据类型。

1 个答案:

答案 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))