从char数据类型到DateTime数据类型的转换导致超出范围的DateTime值。
该语句已终止。

ALTER PROCEDURE [dbo].[attendance_updatebyemployee_id]
@Employee_id int,
@AtDate datetime,
@FNLogged bit,
@ANLogged bit,
@LogTime varchar(10),
@LogOuttime varchar(10)

AS
BEGIN


    SET NOCOUNT ON;
    update Mst_Attendance set FNLogged=@FNLogged,
    ANLogged=@ANLogged,LogTime=@LogTime,LogOuttime=@LogOuttime
    where EmployeeId=@Employee_id and Atdate= @AtDate

END


在C#代码我给它作为

 cmd.Parameters.AddWithValue("@AtDate",Dtime.ToString("dd/MMM/yyyy"));


在使用SQl分析器时,传递的数据为

exec [dbo].[attendance_updatebyemployee_id] @Employee_id=2,@AtDate='Feb 19 2011 12:00:00:000AM',@FNLogged=1,@ANLogged=0,@LogTime='11:45 AM',@LogOuttime=' '


在存储过程中,@ AtDate的值为2011-02-19 00:00:00.000.
它是从更新命令中断。

在表格内,日期另存为2/19/2011 12:00:00 AM

我该如何解决这个日期问题。

最佳答案

如果您拥有该工具,请使用SQL Profiler实际查看传递给数据库的确切SQL字符串。这将帮助您找到错误。

10-06 00:08