我的时间&插入日期


mysqli time & date insert

我试图插入一个用户在一个网站上注册到mysql的日期,但由于一些奇怪的原因,我没有得到它插入正确,我在下面使用这个查询

  $connect->query("INSERT INTO `users` (username, email, password, name, country, signup_date) VALUES ('". $username ."', '". $email ."', '". $password ."', '". $fname . " " . $lname ."', '". $country ."', '".time()."')");

我得到一个金额插入到signup_date,但它显然是混乱的,有什么想法吗?

Php的time()函数返回unix时间戳。然而,MySQL期望以'YYYY-MM-DD HH:MM:SS'格式提供日期和时间值。只需在php中格式化您的时间值,使其与MySQL期望的格式相匹配。

İf signup_date的类型是datetime,您可以使用date("Y-m-d H:i:s")代替time()来获得格式化的datetime

可以使用mysql函数NOW() OR CURDATE()

"INSERT INTO `users` (username, email, password, name, country, signup_date) VALUES ('". $username ."', '". $email ."', '". $password ."', '". $fname . " " . $lname ."', '". $country ."', NOW())"

将列的dataType改为timestamp

在它的默认列中写CURRENT_TIMESTAMP,不要在signup_date列中插入任何东西。它会自动插入当前日期

您可以将signup_date的数据类型设置为数据库中的Date,并在查询中使用NOW()函数。

  $connect->query("INSERT INTO `users` (username, email, password, name, country, signup_date) VALUES ('". $username ."', '". $email ."', '". $password ."', '". $fname . " " . $lname ."', '". $country ."', '".NOW()."')");

如果signup_date数据类型仅为Date,并且您使用了上述查询,则数据将采用以下格式:YYYY-MM-DD

,但如果是TIMESTAMP数据类型,则格式为:YYYY-MM-DD HH:MI:SS

所以取决于你需要什么,你可以使用。