将C#Datetime转换为MySql DateTime格式

时间:2015-01-24 18:52:29

标签: c# mysql datetime

我一直在试图弄清楚如何将当前日期时间从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'列。

2 个答案:

答案 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