【发布时间】:2012-06-03 06:05:52
【问题描述】:
我有以下代码,但它似乎没有产生预期的结果:
$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();
这可能是一个愚蠢的错误。但是当我不确定选择语句 BETWEEN 和使用的日期是否是有效的 MYSQL 时,我发现很难确定。
任何帮助都会很棒。我一直在搜寻,我所做的似乎是正确的,因此造成了混乱。
已编辑 //
我在 date_from 和 date_to 日期之间创建了许多 cmets,并且通知表中没有通知(不存在部分)......所以基本上,我应该得到大约 25 cmets 回来......相反,我只收到一条评论返回日期为 2012-05-29 00:23:39
已编辑 //
是因为您只能将日期与日期进行比较......以及将时间与时间进行比较吗?为了做到这一点,我该如何调整 mysql?
已编辑 //
之间的函数出错了。我真的不确定它到底出了什么问题。
- 能否返回两个日期之间的记录?
- 你能举个例子吗?
已编辑 // 问题已解决。这与查询无关,因此可以肯定地说这是正确的做法。我以一种疯狂的方式完成了我的日期范围。感谢你们所有的帮助!!!!
【问题讨论】:
-
你的代码会产生什么结果?你期望什么结果? MySQL 库中
e.created字段的格式是什么? -
为什么还需要
CAST?您可以让 PHP 为您进行转换;通常CAST应该用于数据库中已有的字段:) -
正在关注下面的帖子.. :)
标签: php mysql datetime between