存储过程和一般sql语句,结果不同。。。

baisun 2005-05-09 05:00:32
存储过程:
CREATE PROCEDURE [dbo].[dd]
@d varchar
AS
declare @sql varchar(1000)
set @sql='select * from re where rtrim(redate)=cast('+@d+' as datetime)'
exec (@sql)
GO
执行dd '2005-04-03'无结果

一般sql语句:
select * from re where rtrim(redate)=cast('2005-04-03' as datetime)
得到了正确结果。

存储过程那里不对呢?
...全文
89 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xluzhong 2005-05-09
  • 打赏
  • 举报
回复
CREATE PROCEDURE [dbo].[dd]
@d varchar(1000) ---默认是1
AS
declare @sql varchar(1000)
set @sql='select * from re where rtrim(redate)=cast('''+@d+''' as datetime)'
exec (@sql)
GO
wyb0026 2005-05-09
  • 打赏
  • 举报
回复
CREATE PROCEDURE [dbo].[dd]
@d varchar --你这个Varchar是多长,是不是应该给出来呀 否则可不对呀
AS
paoluo 2005-05-09
  • 打赏
  • 举报
回复

CREATE PROCEDURE [dbo].[dd]
@d varchar(50) --这里加上字符串的长度
AS
declare @sql varchar(1000)
set @sql='select * from re where rtrim(redate)=cast('''+@d+''' as datetime)' --这里'改为'''
exec (@sql)
GO
fengfangfang 2005-05-09
  • 打赏
  • 举报
回复
存储过程
CREATE PROCEDURE [dbo].[dd]
@d varchar
AS
declare @sql varchar(1000)
set @sql='select * from re where rtrim(redate)=cast('''+@d+''' as datetime)'
exec (@sql)
GO

34,593

社区成员

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

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