存储过程datetime,从字符串向 datetime 转换时失败。 参数为 datetime该怎么处理?
declare@snvarchar(1000),@tnvarchar(50)set@t='2012-1-100:00:00'set@s='selecttop10*from...
declare @s nvarchar(1000),
@t nvarchar(50)
set @t='2012-1-1 00:00:00'
set @s = 'select top 10 * from T_position where adddate<'+@t
exec(@s) 此时会报错说字符串向datetime转换失败
而 select * from T_Position where adddate<'2013-1-1 00:00:00'直接执行就不会报错
如果把 @t 定义为 datetime 时
set @t =getdate()
select convert(nvarchar(10),@t,120)和 select convert(nvarchar(10),getdate(),120)的结果会不一样。
请问我在存储过程中 如果要添加 时间限定条件时应该 定义什么类型的参数,麻烦给个执行存储过程的例子。 还有 我在 where 后面的限定条件应该怎么写。
最后执行的时候想在数据库中 拼接 一段字符串 执行存储过程,不想在 vs中写太长的sql语句了。 展开
@t nvarchar(50)
set @t='2012-1-1 00:00:00'
set @s = 'select top 10 * from T_position where adddate<'+@t
exec(@s) 此时会报错说字符串向datetime转换失败
而 select * from T_Position where adddate<'2013-1-1 00:00:00'直接执行就不会报错
如果把 @t 定义为 datetime 时
set @t =getdate()
select convert(nvarchar(10),@t,120)和 select convert(nvarchar(10),getdate(),120)的结果会不一样。
请问我在存储过程中 如果要添加 时间限定条件时应该 定义什么类型的参数,麻烦给个执行存储过程的例子。 还有 我在 where 后面的限定条件应该怎么写。
最后执行的时候想在数据库中 拼接 一段字符串 执行存储过程,不想在 vs中写太长的sql语句了。 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询