在mysql where子句中比较日期是否相同


compare if date is same in mysql where clause

$stmt = $dbh->prepare("SELECT * FROM table1 AS t1 INNER JOIN table2 AS t2 ON t1.id = t2.id WHERE t1.username = :user AND date_format(t2.date, 'Y-m-d') == :time");
$stmt->bindValue(':time', date_format($time, 'Y-m-d'), PDO::PARAM_STR);
$stmt->bindValue(':user', $user, PDO::PARAM_STR);

我有这个代码来检查日期是否相等。同样的方式同一天January 1, 1990 == January 1, 1990

但是我得到的是date_format() expects parameter 1 to be DateTimeInterface,

在mysql中比较日期的合适方法是什么?

尝试mysql str_to_date

$stmt = $dbh->prepare("SELECT * FROM table1 AS t1 INNER JOIN table2 AS t2 ON t1.id = t2.id WHERE t1.username = :user AND str_to_date(t2.date,'%M %d, %Y')  == :time");
$stmt->bindValue(':time', str_to_date($time,'%M %d, %Y'), PDO::PARAM_STR);
$stmt->bindValue(':user', $user, PDO::PARAM_STR);