我一直在试图弄清楚如何将当前日期时间从c#添加到mysql列中,并且该属性/列也在' datetime'格式。我正在写这段代码。
if (comboBox1.Text == "Cash On Delivery")
{
MessageBox.Show("Your order has been placed.","",MessageBoxButtons.OK);
string timeString = DateTime.Now.ToString("YYYY-MM-DD HH:MM:SS");
string constring = "datasource=localhost;port=3306;username=root;password=root";
string query = "insert into artgallery.payment_method where payment_method ='" +comboBox1.Text+ "' AND payment_date='" +formatForMySql+ "' AND payment_amount = '" +variables.total_amount+ "' ";
//rest of the code
}
我得到一些与timeString相关的语法错误我试图在我的' payment_date'列。
答案 0 :(得分:4)
正确的答案是停止构建像这样的SQL。使用参数化SQL,然后将DateTime
值指定为参数值 - 您的代码中根本不需要字符串表示。
目前还不清楚你正在使用哪个驱动程序(MySQL,IIRC有两个),但是你应该查看你正在使用的命令类型的Parameters
属性。
使用参数化SQL非常重要< - >不仅要避免像这样的转换问题,还要防止SQL Injection Attacks。在我看来,它还使您的代码更容易阅读。
答案 1 :(得分:0)
这样说吧
INSERT INTO table_name( date_column) VALUES (STR_TO_DATE('2014-12-31 00:00:00','%Y-%m-%d %H:%i:%S')
另外,你把M(月份的平均值)放在月份和分钟...... 请在这里再次检查您的格式
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format