Php Mysql获取上一个日期记录时出错

Php Mysql获取上一个日期记录时出错,php,mysql,Php,Mysql,首先从“表”中选择一行 $query_set1 = "SELECT * FROM table WHERE ordinal = 5555 "; $set1 = mysql_query($query_set1, $table)); $row_set1 = mysql_fetch_assoc($set1); 然后我想选择上一个日期记录 $query = sprintf("SELECT * FROM table WHERE date = (SELECT MAX(date) FROM table WHE

首先从“表”中选择一行

$query_set1 = "SELECT * FROM table WHERE ordinal = 5555 ";
$set1 = mysql_query($query_set1, $table));
$row_set1 = mysql_fetch_assoc($set1);
然后我想选择上一个日期记录

$query = sprintf("SELECT * FROM table WHERE date = (SELECT MAX(date) FROM table WHERE date < %s) ", $row_set1['date']);
我得到这个错误

您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 1号线08:43:30附近

这是解释的$query

SELECT * FROM table WHERE date = (SELECT MAX(date) FROM table WHERE date < 2014-08-07 08:43:30)

查询的问题是,在日期常量周围需要单引号

但是,为什么要麻烦将日期从数据库移动到应用程序呢?只需使用一个查询:

SELECT *
FROM table
WHERE date < (SELECT date FROM table WHERE ordinal = 5555)
ORDER BY date DESC
LIMIT 1;

您需要在日期常量周围使用单引号。我将查询分开,因为我需要序号=5555的记录和上一个带日期的记录。我使用此限制1解决方案来获取上一个和下一个带日期的记录,结果成功了。仍然不知道为什么MAX-MIN方法不起作用