0

在 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 的值时,一切运行顺利,除了当我检查数据库中输入的日期时,我发现自己使用的是 0000-00-00

另一方面,当我从 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() 的地方确实正确插入了应该是的日期。

我似乎找不到问题所在,据我了解,如果输入的日期有问题,它只会插入 0000-00-00。

我保持两个查询“相同”的原因是为了了解我做错了什么,并且我知道它们可能会受到 SQL 注入的影响。

您的帮助将不胜感激。

里奥·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 & "' );"

不幸的是,它不起作用,我仍然得到 0000-00-00。

4

1 回答 1

2

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

前:

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().

希望这可以帮助。

于 2012-10-05T00:08:34.643 回答