我有一个存储过程,当我从前端传递值 DateTime.Now
时,它有一个类似 @CurrentDate datetime
的参数 (C#) 对于此存储过程,它工作正常。
但是当我在我的系统/服务器中将日期格式更改为English(India)
时,DateTime.Now
将返回一个值如 25-10-2012 PM 05:23:27
。我将此值传递给存储过程,但收到如下错误消息,
Msg 242, Level 16, State 3, Line 10
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
注意:我不想使用来自 Sqlserver 的 GETDATE()
,我想从 c# 传递参数。
我该如何解决这个问题?
最佳答案
日期格式的问题是因为您将其转换为字符串,然后再转换回 DateTime 值。根据特定服务器上的文化设置,这可能有效也可能无效。它还可能会误解数据,例如将日期从 2013-10-12 转换为 2013-12-10。
DateTime datet = new DateTime(year,month,day);
startDateParam.Value = datet;
endDateParam.Value = datet;
“请注意,服务器存储的日期时间格式为‘1900-01-01 00:00:00.000’”
关于c# - 将参数传递给 MS-Sql 存储过程时出现 DateTimeFormat 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13069338/