2011-04-29 98 views
3

我尝试使用下面的代码语法错误转换日期时间从字符串

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一个字符串变量中插入MS-SQL表中的行”。我也试过通过datetime变量本身,但它不起作用,我得到如下相同的错误。

“语法错误转换日期时间从字符串”

我应该用什么格式,使其工作?

谢谢。

+0

你的列是一个日期时间?所以添加一个参数作为日期时间应该工作 – lnu 2011-04-29 07:39:08

回答

1

使用DateTime.Parse(Yestarday)

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

非常感谢Ranhiru这工作。 DateTime.Parse(Yestarday)。但我仍然不明白为什么直接的DateTime对象不工作,它应该工作,我认为。 – Ahmed 2011-04-29 08:13:54

1

您应该直接使用DateTime对象。如果您遇到另一个错误,请发布该错误。

0

试试下面的代码。

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