DateTime myDateTime = Convert.ToDateTime(rd2[0].ToString())
values = myDateTime.ToString("yyyy-MM-dd HH:mm:ss") + " , " + rd2[1].ToString()+ " , " + rd2[2].ToString()+ " , " + rd2[3].ToString()+ " , " + rd2[4].ToString()+ " , " + rd2[5].ToString() ;
我试图在数据类型datetime的sql server表中插入日期2016-04-22 12:58:11但是它给出了错误" 12&#34附近的语法错误;
答案 0 :(得分:6)
你最终得到的字符串类似于:
2016-04-22 00:00:00,2016-04-22 00:00:00,2016-04-22 00:00:00,2016-04-22 00:00:00
将其插入SQL语句无效。您需要将每个日期用单引号括起来,以便:
'2016-04-22 00:00:00','2016-04-22 00:00:00','2016-04-22 00:00:00','2016-04-22 00:00:00'
无论哪种方式,这都会让你的生活变得困难,并使你的代码受到sql注入和不安全的影响。考虑使用这样的参数。
string exampleSQL = "SELECT * from mydatetable where dateOne = @date1 and dateTwo = @date2";
SqlConnection connection = new SqlConnection(/* connection info */);
SqlCommand command = new SqlCommand(sql, connection);
command.Parameters.Add("@date1", SqlDbType.DateTime).Value = myDateTime;
command.Parameters.Add("@date2", SqlDbType.DateTime).Value = rd2[1];
这样您就不必担心格式化了。系统会自动将@ date1和@ date2替换为您指定的值,它将处理添加SQL的必要结构而无需担心。
答案 1 :(得分:0)
我强烈建议您使用"参数化您的SQL查询" ...例如,您可以在此处查看: http://www.dreamincode.net/forums/topic/268104-the-right-way-to-query-a-database-parameterizing-your-sql-queries/
干杯!