【问题标题】:comparing dates in a table with tomorrow's date将表格中的日期与明天的日期进行比较
【发布时间】:2022-01-25 22:25:09
【问题描述】:

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

我收到错误:语法错误或访问冲突: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);

【问题讨论】:

    标签: php sql pdo


    【解决方案1】:

    首先检查您的查询。出现语法错误 - AND 运算符后缺少空格。

    $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;
    

    【讨论】:

      猜你喜欢
      • 2014-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-26
      相关资源
      最近更新 更多