SQL Update命令中的DATEADD和@Var

时间:2017-01-11 13:06:42

标签: c# sql visual-studio-2015

我想使用以下命令更新time(0)列。 (VS 2015中的SQLDataSource

UPDATE       tb_reported
SET                Time = DATEADD(Hour, @Quantity, Time)
WHERE        (EmpShort = @EmpShort) AND (Date = @Date) AND (Time > @Time)

当我测试命令(运行查询)时,它会询问我4个参数的值。对于@Quantity,我使用例如" 2"加2个小时。然后我点击" OK"并获取有关@Quantity参数格式的错误消息:

  

"错误消息:参数值无法从Decimal转换为TimeSpan"

当我使用例如" 2"而不是@Quantity更新运行没有问题。

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:0)

首先尝试声明@Quantity或者说@Time

DECLARE @Time BIGINT();
@Time = DATEADD(Hour, '2', Time);

新SQL:

UPDATE tb_reported
SET    Time = @Time
WHERE  (EmpShort = @EmpShort) 
       AND (Date = @Date) 
       AND (Time > @Time)