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

本文关键字:语法 错误 时间 日期 字符串 转换 | 更新日期: 2023-09-27 17:53:34

我试图在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();

其中yesterday是一个字符串变量,包含短日期格式,如"04/04/2011"。我也尝试传递datetime变量本身,但它不工作,我得到相同的错误如下。

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

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

谢谢。

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

使用DateTime.Parse(Yestarday)

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

您应该直接使用DateTime对象。

试试下面的代码。

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