如果系统date时间格式发生更改,则在SQL Server中保存错误

我正在使用C#应用程序将数据从Excel文件导入到SQL Server中。 我的工作表包含一些date时间列。

无论什么格式我的系统date时间设置为( dd/mm/yyyymm/dd/yyyy或任何其他格式)以及我的date时间值是什么格式在Excel表中,我将能够正确地加载它在sql服务器没有任何错误。 目前如果我的系统date时间是mm/dd/yyyy ,则会保存数据,但如果将系统格式更改为dd/mm/yyyy ,保存操作将失败。

保存function: –

 public int InsertSetting(DataRow drow) { int Result = 0; try { OdbcParameter[] p = new OdbcParameter[9]; p[0] = new OdbcParameter("@ID", drow["ID"].ToString().Trim()); p[1] = new OdbcParameter("@ComID", drow["CompanyID"].ToString().DbNullIfNullOrEmpty()); p[2] = new OdbcParameter("@Mod", drow["ModuleID"].ToString().DbNullIfNullOrEmpty()); p[3] = new OdbcParameter("@Stat", drow["Status"].ToString()); p[4] = new OdbcParameter("@EnterBy", drow["EnterBy"].ToString().DbNullIfNullOrEmpty()); p[5] = new OdbcParameter("@EnterDate", (drow["EnterDate"].ToString() == "" || drow["EnterDate"].ToString() == "NULL") ? (object)DBNull.Value : drow["EnterDate"].ToString()); p[6] = new OdbcParameter("@UpdateBy", drow["UpdateBy"].ToString().DbNullIfNullOrEmpty()); p[7] = new OdbcParameter("@UpdateDate", (drow["UpdateDate"].ToString() == "" || drow["UpdateDate"].ToString() == "NULL") ? (object)DBNull.Value : drow["UpdateDate"].ToString()); p[8] = new OdbcParameter("@Mode", 7); Result = //calling stored procedure to save data } catch (Exception ex) { MessageBox.Show(ex.Message, "InsertSetting()"); } return Result; } 

读取inputdate并以mm/dd/yyyy格式更新。

我无法理解到底是什么问题,以及如何使用系统date时间格式。

请帮帮我。 我卡住了..

提前致谢

如果drow["EnterDate"]drow["EnterDate"] drow["UpdateDate"]是DateTime,则可以在ToString()input自定义格式。

为了通过ADO.net将date保存到SQL Server中,虽然我承认这不是一种正式的方式,但我发现将它格式化为ToString("yyyy-MM-dd HH:mm:ss")总是比较安全的,不pipe本地/服务器date时间格式设置。