2015-09-07 126 views
1

如何使用DbFunctions减去小时?如何使用DbFunctions减去小时?

我使用.NET Framework 4.5和Entity Framework 6.0

这是我写的代码。

var _temp = (from x in context.LOG_ACTIVITIES 
      ... 
      select new 
      { 
       RECEIVED_DATE = DbFunctions.AddHours(x.RECEIVED_DATE, -8), 
      ... 
      } 
      ); 

这是抛出的异常消息。

SqlDbType.Time溢出。值'-08:00:00'超出范围。 00:00:00.0000000和23:59:59.9999999之间必须为 。

任何帮助,将不胜感激。 TIA!

+0

你得到的代码有什么问题,应该减去8小时。 –

+0

这里执行代码时引发异常消息。 SqlDbType.Time溢出。值'-08:00:00'超出范围。必须介于00:00:00.0000000和23:59:59.9999999之间。 –

+0

什么是RECEIVED_DATE列的SQL类型? –

回答

-1

错误消息很明显。函数的结果是负数,数据类型“SqlDbType.Time”无法处理。你需要使用另一种数据类型(如果可以的话,我不知道)。或者您需要检查有效输入(如果“RECEIVED_DATE”大于“8小时”),并且如果结果值有效则返回标志。对于无效结果,您可以使用“NULL”。