关于NOW()函数的MySQL文档...
以“YYYY-MM-DD HH:MM:SS”或YYYYMMDDHHMMSS.uuuuuu格式返回当前日期和时间,具体取决于函数是在字符串还是数字上下文中使用。该值以当前时区表示。
这是我的查询...
$sql = "
INSERT INTO `users` ( `username`, `password`, `email`, `time` )
VALUES ('{$username}', '" . sha1( $password ) . "', '{$email}', NOW() )
";
问题是在数据库中我没有完整的日期时间,而只有年份。任何解决方案?
答案 0 :(得分:5)
它是int(10),就像我使用UNIX时间戳时那样。
NOW()
仅适用于DATETIME
字段。
您需要将字段转换为DATETIME
(首选方法),或使用UNIX_TIMESTAMP()
:将NOW()
转换为UNIX时间戳
UNIX_TIMESTAMP(NOW())
答案 1 :(得分:4)
我遇到了同样的麻烦,最长时间难过,直到我读到这个问题。我使用mysql的now()函数来更新成员的上次登录时间。
MySQL的now()以字符串形式返回日期时间,如YYYY-MM-DD HH:MM:SS
- 在我停止使用此行的某个地方,并开始使用time() (UNIXTIME)
(使其更易于使用),返回一个字符串数字,如1352254528
。但是,您无法在日期时间字段中存储这样的数字字符串,同样,您也无法将YYYY-MM-DD HH:MM:SS
存储在int(11)
字段中。后者只会导致存储一年。
最后你应该使用:
int(11)
如果您打算使用PHP的time()
函数将时间存储为一串数字
要么
DATETIME field
如果您要使用MySQL的NOW()
函数。
答案 2 :(得分:1)
尝试
strtotime(now())
您绝对应该使用timestamp
或datetime
作为列的类型。