如何用C#将欧洲格式的日期和时间插入SQL Server?

时间:2013-07-15 10:57:34

标签: c# sql-server datetime

这是我的疑问:

string sql = @"INSERT INTO MY_TABLE(DATE) 
                            VALUES (convert(datetime, '{0}')";

sql = string.Format(sql, myDate);

myDate是一个C#DateTime对象,在string.format之前有此值:

enter image description here

MY_TABLE将DATE列设为DateTime类型。

我收到了这个错误:

  

将varchar数据类型转换为日期时间数据类型会导致超出范围的值。

我需要将myDate值以31/12/2013 23:59:00格式存储到MY_TABLE中。

2 个答案:

答案 0 :(得分:6)

最好使用sql参数

string sql = @"INSERT INTO MY_TABLE(DATE) 
                            VALUES (@DATE)";

使用SqlParameterCollection.AddWithValue Method

将参数添加到SqlCommand
command.Parameters.AddWithValue("@DATE", myDate);

或,SqlParameterCollection.Add Method

   command.Parameters.Add("@DATE",SqlDbType.DateTime).Value = myDate

答案 1 :(得分:0)

DateTime.Now.ToString("dd/MM/yyyy H:mm:ss")

有关参数列表,请参阅MSDN。 (向下滚动一下以查看表格。)

(建议使用Parameters.AddWithValue来避免SQL注入等。)