Sql server 在存储过程中传递相同的日期时,无法获取数据

Sql server 在存储过程中传递相同的日期时,无法获取数据,sql-server,Sql Server,我有一张这样的桌子: 我有这样的存储过程: ALTER PROCEDURE [dbo].[Test4] @startdate varchar(100), @enddate varchar(100) as begin declare @date1 datetime = CONVERT(datetime, @startdate + ' 00:01:00', 120); declare @date2 datetime = CONVERT(datetime,

我有一张这样的桌子:

我有这样的存储过程:

ALTER PROCEDURE [dbo].[Test4]    
  @startdate varchar(100),   
  @enddate varchar(100)
as  begin   
   declare @date1 datetime = CONVERT(datetime, @startdate + ' 00:01:00', 120);
   declare @date2 datetime = CONVERT(datetime, @enddate + ' 00:23:59', 120);

   select t.PlateNo  
   from Transaction_tbl t    
   WHERE dtime between @date1 AND @date2; 
end; 
如果我通过了相同的日期(开始日期:2013-05-07和结束日期:2013-05-07),我将不会得到任何结果,如果我只通过了不同的日期,我将得到结果,我的存储过程出现了什么问题

我想你需要这个:

声明@date1 datetime=CONVERT(datetime,@startdate+'00:00:00',120);
声明@date2 datetime=CONVERT(datetime,@enddate+'23:59:59',120)

先生,这就是为什么我将开始日期设置为00:01:00,结束日期设置为一天的结束时间(我的意思是00:23:59),但这只是一天中的23分59秒。你的时间都超过了17个小时哦,我错给了这样的日期我给了这样的日期:23:23:59.000现在我得到了正确的答案谢谢你的帮助