C#与SQL Server 关于DateTime时间的问题。

在A服务器中

 contractVO.ContractDatetime = Convert.ToDateTime(drsjDataTabel.Rows[i]["contractDatetime"].ToString());

contractDatetime的值是 2018-2-1 转换后得到的值是 2018-2-2 00:00:00

在B服务器中
转换后得到的值是 2002/1/18 星期五 上午 12:00:00

所以在插入SQLServer时出现了报错。

我想着应该是windows系统的原因,请问这样的问题如何解决。。

这个是系统得问题,这个系统是ghost版本,我以前也碰到过。
这里有两种办法,第一种就是把中文替换掉
第二种就是重装系统了,希望能够帮助到你

应该是服务器时间没有正确设置,把服务器时间设对就行了。

如果你的两个时间正好差8小时,那么是数据库和.net框架的时区设置不同。

C#中可以用下面的方式转换时区
https://msdn.microsoft.com/zh-cn/data/bb546098

sql server里面日期字段的类型的日期类型的吧
转换后得到的值是 2002/1/18 星期五 上午 12:00:00 这个值要格式化一下吧?

看下两个DB的服务器时间和语言系统是否一样

服务器时间和客户端时间不一致

检查下服务器时间设置正确没

是系统的问题,需要设置在控制面板中的区域语言里有个管理,在那里更改系统的区域设置语言,如果是英文的话,改为中文简体,
如果是中文简体改为英文,然后重启系统,应该就没问题了,如果再有问题就不知道了

contractDatetime的值是 2018-2-1,那么你转换的时候用ToString("yyyy-MM-dd")或者ToShortDateString()限制死日期的长短可以吗?反正你后面的时间又不是转换出来的

没有仔细看楼主的问题。
存入数据库时要约束时间的格式。直接使用DateTime.Now的话会采用系统时间格式,即你右下角显示的时间格式。
不同电脑时间格式不一样,长度不一样。然后你又设置数据库中时间字段的长度,所以就报错了