我想比较两个datetime
变量,其中一个是当前server time
,其中一个存储在mysql
数据库中我运行这段简单的代码,它不会工作并说这是一个语法错误,我想知道我能做什么
<?php include("includes/student_session.php");?>
<?php confirm_logged_in();?>
<?php include("includes/connection.php");?>
<?php
date_default_timezone_set("");
$now_date=date("Y-m-d H:i:s");
$query1="select exam_id from exam where {$now_date} > start_date";
$result=mysqli_query($cnn,$query1);
if($result){
$row=mysqli_fetch_array($result);
echo $exam_id. "exists";
}else
{echo mysqli_error($cnn);}
?>
答案 0 :(得分:3)
在此代码中:
$query1="select exam_id from exam where {$now_date} > start_date";
$result=mysqli_query($cnn,@query1); // <-
您使用的是@query1
,这应该是$query1
。
答案 1 :(得分:1)
$query1="select exam_id from exam where {$now_date} > start_date";
$result=mysqli_query($cnn,@query1);
我认为错误是因为你使用的是@而不是$。 你的查询似乎也错了。您应该将值与字段进行比较,将其更改为
$query1="select exam_id from exam where start_date > '{$now_date}'";
$result=mysqli_query($cnn,$query1);
答案 2 :(得分:1)
即使纠正@query1
的错误类型,查询也不会像这样工作。 $now_date
是一个字符串,您必须像字符串一样将其传递给查询。如果你用mysql的函数格式化它更好,不是用php的格式,也可以将存储在数据库中的时间与数据库自己的时间进行比较(那么你可以跳过任何时区问题)。因此,您的查询可能是这样的:
SELECT exam_id FROM exam WHERE DATEDIFF(NOW(), DATE_FORMAT(start_date,'%Y-%m-%d %T')) > 0;