admin

尝试将日期插入datetime列时出错

sql

我有一个试图将某些数据插入SQL Server 2008数据库的表单。表单具有获取当前日期/时间,然后将其插入数据库的功能,如下所示;

$now = date("Y-m-d H:i:s");
$q = "INSERT INTO ".TBL_USERS." ( username, password, userid, userlevel, email, created, updated, timestamp, fullname, avatar )
VALUES ( '$username', '$password', '0', $ulevel, '$email', '$now', '$now', $time, '$fullname', $avatar)";

但是,在提交表单时,报告的错误为;

警告:mssql_query()[function.mssql-
query]:消息:无法将值NULL插入表’dbo.users’的’created’列中;列不允许为空。INSERT失败。

我们已经执行了echo $ q来显示试图插入的数据,并且确实显示了正确的日期时间(例如2009-10-28 15:43:00.000),.
000通常是由数据库添加的。

如果我在数据库中手动创建记录,则上面示例中的datetime将被接受。

想知道以前是否有人遇到过这个问题?

谢谢你。尼尔


阅读 189

收藏
2021-06-07

共1个答案

admin

尝试使用CURRENT_TIMESTAMP代替“ $ now”,如下所示:

$q = "INSERT INTO ".TBL_USERS." ( username, password, userid, userlevel, email, created, updated,   timestamp, fullname, avatar )
VALUES ( '$username', '$password', '0', $ulevel, '$email', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, $time, '$fullname', $avatar)";
2021-06-07