将 table 中的日期与明天的日期进行比较

comparing dates in a table with tomorrow's date

我正在尝试将 table 中的日期与明天的日期进行比较。

我收到错误:语法错误或访问冲突:1064 Erreur de syntaxe prés de 'DAY(start_datetime)=26'。

我试过以下方法:

$year= date('Y',strtotime('tomorrow'));
$month= date('m',strtotime('tomorrow'));
$day= date('d',strtotime('tomorrow'));

$stmt4 = $pdo1->query("SELECT time_format(start_datetime,'%H:%i') from ea_appointments where 
YEAR(start_datetime)= ".$year." and MONTH(start_datetime)=".$month."and 
DAY(start_datetime)=".$day);

先检查您的查询。存在语法错误 - AND 运算符后缺少 space。

$stmt4 = $pdo1->query("SELECT time_format(start_datetime,'%H:%i') from ea_appointments where 
YEAR(start_datetime)=".$year." and MONTH(start_datetime)=".$month." and 
DAY(start_datetime)=".$day);

我还建议对 SELECT 和 WHERE 等保留关键字使用大写字母,这样可以提高可读性。相同的查询可能如下所示:

$stmt4 = $pdo1->query("
SELECT TIME_FORMAT(start_datetime,'%H:%i')
  FROM ea_appointments
 WHERE YEAR(start_datetime)=".$year."
   AND MONTH(start_datetime)=".$month."
   AND DAY(start_datetime)=".$day
);

您还可以依赖 SQL 日期和时间操作。 在 MySQL 的情况下,查询将如下所示:

SELECT TIME_FORMAT(start_datetime,'%H:%i') 
  FROM ea_appointments 
 WHERE DATEDIFF(start_datetime, DATE_ADD(CURDATE(), INTERVAL 1 DAY)) = 0;