【问题标题】:Syntax Error Converting DateTime From Character String从字符串转换日期时间的语法错误
【发布时间】:2011-08-15 07:37:18
【问题描述】:

我正在尝试使用以下代码在 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 变量本身,但它不起作用,我得到与以下相同的错误。

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

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

谢谢。

【问题讨论】:

  • 您的专栏是日期时间?所以添加一个参数作为日期时间应该可以工作

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    使用DateTime.Parse(Yestarday)

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

    【讨论】:

    • 非常感谢 Ranhiru 这工作。 DateTime.Parse(昨天)。但我仍然不明白为什么直接 DateTime 对象不起作用,我认为它应该起作用。
    【解决方案3】:

    试试下面的代码。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-02
      • 2016-08-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多