我有下面的代码,它似乎没有生成预期的结果:
$date_from = '2012-04-27 18:19:33';
$date_to = '2012-05-29 00:59:57';
$database->connect();
$ancestors = mysql_query('
SELECT * FROM ' . $database->db_prefix . 'comments e
WHERE e.created BETWEEN "' . $date_from . '" AND "' . $date_to . '" AND
e.ancestors = "' . $comment["id"] . '" AND e.user_id != "' . $user->user_object["id"] . '" AND
NOT EXISTS
(
SELECT null
FROM ' . $database->db_prefix . 'notifications d
WHERE d.target_id = e.id
)
ORDER BY e.created DESC
', $database->connection_handle);
$database->close();
这可能是一个愚蠢的错误。但我发现很难确定,当我不确定选择语句之间和日期正在使用的是有效的MYSQL的东西。
任何帮助都会很大。我一直在冲刷,我正在做的似乎是正确的,因此混乱。
编辑//
我在date_from和date_to日期之间做了许多注解,但notifications表中没有通知(不存在部分)...因此,基本上,我应该返回大约25条注解...相反,我只返回了一条注解,其日期为2012-05-29 00:23:39
编辑//
是因为你只能比较日期和日期...时间和时间吗?我该如何修改mysql来做到这一点呢?
编辑//
这肯定是between函数出错了。我真的不确定到底出了什么问题。
1.您可以在两个日期之间返回记录吗?
1.你能给予个例子吗?
EDITED //问题已经解决了。它与查询无关,所以可以肯定地说这是正确的方法。我已经做了我的日期范围在一个疯狂的方式。感谢所有你该死的帮助家伙!!!!
2条答案
按热度按时间mu0hgdu01#
在MySQL文档中,它指出当使用between和日期或时间值时,应该使用CAST,因此应该按如下方式编写查询。
如果您在两者之间没有得到预期的结果,这可能会解决您的问题。
sgtfey8w2#
我遇到了同样的问题,我想你可能想应用这个解决方案:
这里的技巧是单引号,你需要把你的变量放在引号里面,让mysql来处理它