到底哪里出错了?

xy328 2001-08-17 12:34:12
CREATE PROCEDURE UpdateTraffic
@Start datetime,
@endtime datetime,
@Serial_no varchar(50),
@Src_add varchar(50),
@Src_port varchar(50),
@Dst_addr varchar(50),
@Dst_port varchar(50),
@Date_len int,
@IPPacketSerial int,
AS
if exists (select IPPacketSerial from Traffic
where IPPacketSerial = @IPPacketSerial)

begin
update Traffic set Date_len = Date_len + @Date_len , [end] = @end
where IPPacketSerial = @IPPacketSerial
end
else
begin
insert Traffic (Start,endtime,Serial_no,Src_add,Src_port,Dst_addr,Dst_port,Date_len,IPPacketSerial)
values(@Start,@endtime,@Serial_no,@Src_add,@Src_port,@Dst_addr,@Dst_port,@Date_len,@IPPacketSerial)
end



我用SQL Server Query Analyzer 调用这个存储过程的语句是

UpdateTraffic('20:01:00','20:01:01',
'58612885','192.168.1.111','2000','192.168.1.166',
'2000',30,1)

为什么会出错?
错误提示是
Server: Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near '20:01:00'.

即便是我把时间换成 '2001-11-12 20:11:00'这种格式也不对,请问这究竟是怎么回事?
...全文
86 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuzhichao 2001-08-17
  • 打赏
  • 举报
回复
SQL Server的sp執行時不需要左右()的;
和Oracle不同.
zhuzhichao 2001-08-17
  • 打赏
  • 举报
回复
改成
exec UpdateTraffic '2001-11-12 20:11:00','2001-11-12 20:11:01',
'58612885','192.168.1.111','2000','192.168.1.166',
'2000',30,1

就OK了.

tigerwood12345 2001-08-17
  • 打赏
  • 举报
回复
用 EXEC UpdateTraffic('20:01:00','20:01:01',
'58612885','192.168.1.111','2000','192.168.1.166',
'2000',30,1)

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧