如何通过Getdate()函数减去行值

时间:2014-06-18 13:02:07

标签: sql-server-2008

我试图从列中获取getdate()和我的值之间的差异

下面的

S.RefMonthstart 是我正在尝试的查询,但我收到的错误如

  

消息8117,级别16,状态1,行10操作数数据类型日期无效   用于添加运算符。

SELECT dateadd(DAY,0,(CAST(GETDATE()as date))-convert(date,s.RefMonthStart,106))
AS 'Row 
Number'FROM Table1 s

这里我的列RefMonthStart的类型为varchar,其值类似于

  

0

     

31

     

61

现在我怎么会来这个错误

1 个答案:

答案 0 :(得分:0)

您可以像这样重写您的查询

SELECT DATEDIFF(d,cast(s.RefMonthStart AS DATETIME),GETDATE()) AS 'Row Number' 
FROM Table1 s

这是一个相同的示例sqlfiddle http://sqlfiddle.com/#!3/1e4b9/1