参数相同但结果不同的存储过程

问题描述 投票:0回答:0

我在 SQL Server 中有一个存储过程,它在同一台机器上使用相同的参数返回不同的结果,唯一的区别在于它们的调用方式。

这是存储过程代码:

CREATE PROCEDURE dbo.uiAssignedResident
    (@SemCode varchar(50),
     @DateFrom date,
     @DateTo date)
AS
    SELECT
        rs.StudentID, std.StudentName, std.Program, std.Level, std.MobileNo, 
        rs.CreateDate AssignedDate, rs.AssignedBy, ho.HostelName, rs.Room 
    FROM
        dbo.ResStudents rs 
    INNER JOIN
        dbo.vwStudents std ON std.StudentID = rs.StudentID
    INNER JOIN
        dbo.Hostel ho ON ho.HostelID = rs.HostelID
    WHERE
        SemCode = @SemCode 
        AND CONVERT(date, CreateDate) BETWEEN @DateFrom AND @DateTo

如果我只是这样称呼

EXEC dbo.uiAssignedResident '22-23/02', '2023-02-13 00:00:00', '2023-02-13 00:00:00'

为 13 人完成的作业会返回结果,这是正确的。

但是如果我用这个调用过程就像 Dapper 调用过程一样,如果我直接在 MS Studio 中执行也一样

EXEC dbo.uiAssignedResident 
         @SemCode = N'22-23/02',
         @DateFrom = '2023-01-13 00:00:00',
         @DateTo = '2023-01-13 00:00:00' 

如果我要查找的只是那天的数据,它不会返回不正确的数据。

任何指示?

c# sql-server dapper
© www.soinside.com 2019 - 2024. All rights reserved.