我在 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'
如果我要查找的只是那天的数据,它不会返回不正确的数据。
任何指示?