语法错误从字符串转换DateTime

时间:2011-04-29 07:37:08

标签: c# sql-server string datetime type-conversion

我正在尝试使用以下代码在ms-sql表中插入一行

SqlCMDText = "INSERT INTO attendance(date, time_in, time_out, time_total, status,";
SqlCMDText += "  is_late_in, is_half_day, is_early_out, user_id, remarks)";
SqlCMDText += " VALUES('@yestarday_date', 'NA', 'NA', 'NA', 'ABSENT', 'NA', 'NA', 'NA', 52, 'DONE BY PORTAL')";
SqlCMD = new SqlCommand(SqlCMDText, SqlCON);
SqlCMD.Parameters.AddWithValue("@yestarday_date", Yestarday);
SqlCMD.ExecuteNonQuery();

Yestarday是一个字符串变量,包含短日期格式,如“04/04/2011”。我也试过传递datetime变量本身,但它不起作用,我得到同样的错误如下。

  

“从字符串转换DateTime的语法错误”

我应该使用什么格式才能使其正常工作?

感谢。

3 个答案:

答案 0 :(得分:1)

您应该直接使用DateTime对象。如果您收到其他错误,请发布该错误。

答案 1 :(得分:1)

使用DateTime.Parse(Yestarday)

SqlCMD.Parameters.AddWithValue("@yestarday_date", DateTime.Parse(Yestarday));

答案 2 :(得分:0)

请尝试以下代码。

CurDate = DateTime.ParseExact(@Yestarday, "dd/MM/yyyy", System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None)