vb.net INSERT CURDATE()到MySQL问题

时间:2012-10-04 23:58:32

标签: mysql vb.net insert windows-applications

在Windows应用程序中,我有一个查询,我试图在我的mysql数据库中插入当前日期

查询如下:

SqlVentaCasas1 = "INSERT INTO VentaCasasHistory (ID, Direccion, Estatus, Precio, " & _
                                "NumeroDias, FechaHoy, Agente, Compania, Unidad, Ciudad ) VALUES ('" & _
                                AddIDCasas2 & "','" & AddDireccionCasas2 & "','" & AddEstatusCasas2 & "'," & AddPrecioCasas2 & ", 0, CURDATE(), '" & AgenteNameCasas2 & "','" & AgenteCompaniaCasas2 & "', '" & AddUnidadCasas2 & "', '" & AddCiudadCasas2 & "' );"


                        CommandVentaCasas1 = New MySqlCommand(SqlVentaCasas1, con)
                        CommandVentaCasas1.CommandType = CommandType.Text
                        CommandVentaCasas1.ExecuteNonQuery()

当我输入我要插入到mysql中的值时,一切都运行顺利,但是当我检查数据库中输入的日期时,我发现自己的个人资料

另一方面,当我从PHPmyAdmin运行相同的查询

INSERT INTO `VentaCasasHistory`(`ID`, `Direccion`, `Estatus`, `Precio`, `NumeroDias`, `FechaHoy`, `Agente`, `Compania`, `Unidad`, `Ciudad`) VALUES ([String1],[String2],[String3],[Integer1],[Integer2],CURDATE(),[String4],[String5],[String6],[String7])

其中FechaHoy是CURDATE()确实插入了应该的日期。

我似乎无法找到问题所在,据我所知,如果输入日期有问题,它只会插入稿件。

我保持两个查询“相同”的原因是为了理解我做错了什么,我知道他们可以接受SQL注入。

非常感谢你的帮助。

Leo P。

这是我告诉我的最后一篇文章的代码。

Dim StringDate As String

    StringDate = Date.Today.ToString("yyyy-MM-dd")

SqlVentaCasas1 = "INSERT INTO VentaCasasHistory (ID, Direccion, Estatus, Precio, " & _
                                "NumeroDias, FechaHoy, Agente, Compania, Unidad, Ciudad ) VALUES ('" & _
                                AddIDCasas2 & "','" & AddDireccionCasas2 & "','" & AddEstatusCasas2 & "'," & AddPrecioCasas2 & ", 0, STR_TO_DATE('" & StringDate & "', GET_FORMAT(DATE,'ISO')), '" & AgenteNameCasas2 & "','" & AgenteCompaniaCasas2 & "', '" & AddUnidadCasas2 & "', '" & AddCiudadCasas2 & "' );"

不幸的是它不起作用,我仍然得到了这个。

1 个答案:

答案 0 :(得分:2)

CURDATE()应该被指定为CREATE TABLE中使用的默认值。换句话说,您不需要将其作为查询的一部分放入,因为当您插入新记录时,默认值设置为CURDATE()的字段将自动插入日期。

F.ex:

CREATE TABLE MyTable
(
    ID int NOT NULL,
    MyName varchar(30) NOT NULL,
    MyDate datetime NOT NULL DEFAULT CURDATE(),
    PRIMARY KEY (ID)
)

INSERT INTO MyTable (MyName) VALUES ('Epistemex')

MyDate字段设置为CURDATE()

希望这有帮助。