MS Access Date Time字段(General Date)插入查询

时间:2015-03-16 16:01:41

标签: sql date ms-access

我有一个通用的DAL查询,它无法插入日期。但现在我想编辑它,但我无法找到如何插入它。 我尝试了字符串,Convert(),Format()..任何东西,但我似乎无法找到如何做到这一点。 它也必须是通用格式(这是DD / MM / YYYY HH:MM:SS(24h))但我似乎无法找到正确的方法。

        public static void AddRow(string TableName, object[] values)
    {
        DataTable dt = OleDbhelper.fill("SELECT TOP 1 * FROM " + TableName);
        if (dt.Columns.Count - 1 == values.Length)
        {
            string sql = "INSERT INTO " + TableName + " (";
            for (int i = 1; i < dt.Columns.Count; i++)
            {
                sql += "[" + dt.Columns[i].ColumnName + "]";
                if (i != dt.Columns.Count - 1)
                    sql += ",";
                else
                    sql += ") ";
            }
            sql += "VALUES (";
            for (int i = 0; i < values.Length; i++)
            {
                if (dt.Columns[i + 1].DataType.ToString() == "System.String")
                    sql += "'" + values[i].ToString() + "'";
                else
                    if (dt.Columns[i + 1].DataType.ToString() == "System.DateTime")
                        sql += "CONVERT(" + values[i] + "'yyyy-mm-dd hh:mi:ss(24h)'"; // This part 
                    else
                        sql += values[i].ToString();
                if (i != dt.Columns.Count - 2)
                    sql += ",";
                else
                    sql += ") ";
            }
            OleDbhelper.Execute(sql);
        }
    }

任何想法?

1 个答案:

答案 0 :(得分:1)

如果这是Access,请使用:

sql += values[i].ToString("'#'yyyy'/'MM'/'dd hh':'mm':'ss'#'");