Datediff函数返回Null sql server

时间:2016-02-22 08:44:19

标签: sql sql-server vb.net date datetime

  

注意:很难解释这种复杂的情况,特别是当你的母语不是英语时。对不起,如果难以理解的话!

这是我的代码:

ALTER PROC [dbo].[Date]
AS
  BEGIN
      SELECT ( dbo.Formula([Work], [Total]) ) AS [Finish],
             Datediff(day, [Finish], [Start]) AS [Days Planned]
      FROM   [Table1]
  END 

我在[Finish]上有一个Null列,[Table1] 因此,DATEDIFF(day,[Finish],[Start])函数会按预期提供Null个值 我已经在此存储过程中创建了[Finish]列,如您所见。

dbo.Formula是一个给出日期类型结果的函数。

[Start]是填充了日期类型数据的日期类型列 我知道我可以使用DATEDIFF(day,(dbo.Formula([Work],[Total])),[Start])来计算dateiff,但由于某些原因,我使用它并不是很方便。

[Finish]上还有[Table1]列。

有没有办法将数据从(dbo.Formula([Work],[Total]))打印到我的[Finish]列?然后在datediff函数中使用它?

1 个答案:

答案 0 :(得分:0)

ALTER PROC [dbo].[Date]
AS
  begin
      declare @var date
      Select @var= dbo.NewFinishDate([Work], [Total])  from [Table1]
      SELECT @var AS [Finish],Datediff(day, [Start], @var ) AS [Days Planned]
      FROM   [Table1]
  END 

我为我的功能添加了一个paremeter。它运作良好。