SQL类型NOW()不起作用

时间:2013-11-24 10:44:37

标签: mysql sql datetime

我有这个问题;

"INSERT INTO download(download_key, ip, file, expire) VALUES ('".$text."', 
'".$mysql->real_escape_string($_SERVER['REMOTE_ADDR'])."', 
'".$searchQuery['file_match']."', 
'NOW() + INTERVAL 10 MINUTES')"

当我在数据库中插入它时,行到期总是发生在00:00:00。我尝试了类型:

  • 时间戳
  • DATE
  • DATETIME
  • TIME

但总是发电机00:00:00或00:00:00。

NOW()的正确类型是什么?我正在使用MYSQL

4 个答案:

答案 0 :(得分:3)

删除引号,引号用于字符串

NOW() + INTERVAL 10 MINUTE

答案 1 :(得分:1)

"INSERT INTO download(download_key, ip, file, expire) VALUES ('".$text."', 
'".$mysql->real_escape_string($_SERVER['REMOTE_ADDR'])."', 
'".$searchQuery['file_match']."', 
NOW() + INTERVAL 10 MINUTES)"

答案 2 :(得分:1)

我要给已经说过的人添加一些东西。

除了你不应该将sql函数作为字符串传递,所以不要将NOW() + INTERVAL 10 MINUTES放在引号中,你也可以传递一个字符串作为日期。例如,您可以使用php生成此日期。

尝试这个小提琴来检查如何将简单的DATE放入数据库:http://sqlfiddle.com/#!2/cddc1/1

使用PHP,您可以使用以下代码生成日期:

$minutes = 10;
$date = date('Y-m-d H:i:s', time() + $minutes*60);
$query = "INSERT INTO download(download_key, ip, file, expire) VALUES ('$text', 
'{$mysql->real_escape_string($_SERVER['REMOTE_ADDR'])}', 
'{$searchQuery['file_match']}', 
'$date')";

答案 3 :(得分:1)

感谢@Kelu Thatsall: 修正:

NOW() + INTERVAL 10 MINUTE