在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 & "' );"
不幸的是它不起作用,我仍然得到了这个。
答案 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()
。
希望这有帮助。