首页 > 解决方案 > SQL datediff函数数据转换错误

问题描述

我在查询中计算了字段,而它减去了两个日期之间的天数差。我正在使用 SQL 服务器来执行我的查询。

当我使用以下功能时:

Cast(DATEDIFF(D,ACTUALFINISHDATE,PROJFINISHDATE) as int) AS 'Elasped Days

两个日期字段都是datetime日期类型(例如2019-02-23 00:00:00.000)。我试过Convert()代替Cast(),但仍然遇到同样的问题。

我收到以下错误:

消息 242,级别 16,状态 3,第 7 行 将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。

我需要在转换varchar之前将日期时间转换为吗?

标签: sqlsql-serverdatediff

解决方案


您必须在 ActualFinishDate 或 ProjFinishDate 中有错误数据。要查找不良数据...

Select ActualFinishDate
From YourTable
Where ActualFinishDate > '' 
      And IsDate(ActualFinishDate) = 0

推荐阅读