Как сравнить два datetime в запросе MySQL с помощью переполнения стека

Я хочу сравнить два 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

Решение

$query1="select exam_id from exam where {$now_date} > start_date";
$result=mysqli_query($cnn,@query1);

Я думаю, что ошибка в том, что вы используете @ insteal of $.
Также ваш запрос кажется неправильным. Вы должны сравнить значения с полями изменить его на

   $query1="select exam_id from exam where start_date > '{$now_date}'";
$result=mysqli_query($cnn,$query1);
1

Другие решения

В этом коде:

$query1="select exam_id from exam where {$now_date} > start_date";
$result=mysqli_query($cnn,@query1); // <-

Ты используешь @query1это должно быть $query1,

3

Даже если исправить неправильный @query1 запрос не будет работать так $now_date является строкой, и вы должны передать ее в запрос, как строку. Еще лучше, если вы отформатируете его с помощью функций mysql, а не с помощью php, а также сравните время, хранимое в базе данных, с собственным временем базы данных (тогда вы можете пропустить любые проблемы с часовым поясом). Итак, ваш запрос, например, может выглядеть так:

SELECT exam_id FROM exam WHERE DATEDIFF(NOW(), DATE_FORMAT(start_date,'%Y-%m-%d %T')) > 0;
1
По вопросам рекламы [email protected]