1

私は次のようなストアドプロシージャを持っています:

create PROCEDURE [dbo].[Test1]  
   @startdate datetime(100),  
   @enddate datetime(100)
   set  date1 = CONVERT(datetime, @startdate + ' 00:01:00', 120)
   set   date2 = CONVERT(datetime, @enddate + ' 00:23:59', 120)  
as  
begin  
  select t.PlateNo 
  from Transaction_tbl t  
  WHERE dtime between @date1 + ' 00.01.00.00' 
    AND @date2 + ' 23:59.59.00'  
end

これを実行中に2つのエラーメッセージが表示されます

キーワード「set」付近の構文が正しくありません。

スカラー変数を宣言する必要があります@date1

4

2 に答える 2

0

これを試して:-

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

begin  
  select t.PlateNo 
  from Transaction_tbl t  
  WHERE dtime between @date1 + ' 00.01.00.00' 
    AND @date2 + ' 23:59.59.00'  
end
于 2013-08-25T18:20:46.180 に答える
0

私はあなたがこれを意味すると思います:

create PROCEDURE [dbo].[Test1]  
   @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;

ただし、前の質問に対する私の回答のアドバイスに従い、パラメーターを として渡す方がよいと思いますdate

于 2013-08-25T18:26:09.717 に答える