1

我正在将我的 PHP/mySQL 代码转换为 PDO,但我遇到了一些困难。下面我添加了我正在使用的确切代码,以便更好地理解。我的目标是name从数据库中显示他们的时间与输入时间相比相差 2 小时。

这是代码

SELECT * FROM events WHERE TIMESTAMPDIFF( HOUR , TIME, :input ) < 2

这是我的数据库

name                        date
3D Brave                    2012-07-21 17:00:00
Bol Bachchan                2012-07-21 18:00:00
A Royal Affair              2012-07-21 19:00:00
Not Suitable For Children   2012-07-21 23:00:00

如果$input2012-07-20 18:00或者2012-07-20 20:00然后我得到如下所有结果,但它应该只显示那些有 2 小时差异的结果

3D Brave
Bol Bachchan
A Royal Affair
Not Suitable For Children
4

1 回答 1

0

好吧,您正在查询与 column 的差异TIME,但在表架构中,它被称为date.

更正查询:

SELECT *
  FROM events 
  WHERE ABS(TIMESTAMPDIFF( HOUR , `date`, "2012-07-21 18:00:00")) < 2;

我做了什么:

  • 将列名更改为date
  • 添加ABS()了功能(因此它现在既向前看又向后看)。

该查询的结果。

于 2012-07-20T15:27:07.390 回答