【问题标题】:Inserting TIMESTAMP data in MYSQL? Error "MYSQL version for the right syntax to use near etc"在 MYSQL 中插入 TIMESTAMP 数据?错误“MYSQL version for the right syntax to use near etc”
【发布时间】:2012-12-29 01:25:02
【问题描述】:

我想在我的表中添加时间戳数据,但出现错误我该如何解决?

这是我的过程

    CREATE PROCEDURE `db`.`AddMerchantProcessor` (m_id INT, p_id INT, d TIMESTAMP)
BEGIN
    INSERT INTO `tbl_merchant_processor`(`merchant_id`, `processor_id`, `date`) VALUES(m_id, p_id, d);
END

【问题讨论】:

    标签: c# mysql sql timestamp


    【解决方案1】:

    时间戳应该用单引号括起来,例如

    CALL AddMerchantProcessor(0, 1, '2012-01-01 00:00:00')
    

    但这不是使用Command 对象的正确方法。查询应该被参数化。

    这是一个小代码sn-p:

    MySqlCommand comm = new MySqlCommand();
    comm.Connection = cn;
    comm.CommandType = CommandType.StoredProcedure;
    comm.CommandText = "AddMerchantProcessor";
    comm.Parameters.AddWithValue("m_id", m_id);
    comm.Parameters.AddWithValue("p_id", p_id);
    comm.Parameters.AddWithValue("d", d);
    cn.Open();
    comm.ExecuteNonQuery();
    

    你需要:

    • 使用using 语句自动处理对象
    • 添加一些trycatch 以进行正确的异常处理

    来源

    【讨论】:

    • 我已经尝试过了,但仍然出现错误“不正确的日期时间值:'12/28/2012 17:36:19' for column 'd' at row 1”
    • 解决了,我刚刚添加了 Convert.ToDateTime(d)。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-08
    • 2011-11-06
    • 1970-01-01
    • 2022-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多