【发布时间】:2011-11-28 20:35:04
【问题描述】:
我在 Drupal 7 中有一个查询正在搜索自定义表:
$query5 = "SELECT COUNT(reservation_id) as rcount5, reservation_id FROM {reservations} WHERE resource_id = :resource_id AND reservation_date = :reservation_date AND start_time BETWEEN :start_time AND :end_time";
$result5 = db_query($query5, array(':resource_id' => $resource_id, ':reservation_date' => $reservation_date, ':start_time' => $start_time, ':end_time' => $end_time));
查询不起作用,因为我认为它没有正确识别 BETWEEN 函数并返回 end_time 因为它存在。有没有办法显示drupal或db api这是一个BETWEEN语句?谢谢。
【问题讨论】:
-
我不明白。我尝试了 Clive 和 Krister Andersson 的解决方案,结果与我的代码相同。正在使用的 $start_time 的值是 0600,在数据库中存储为 varchar。作为匹配返回的行具有这些值-> start_time = 0700,end_time = 0950。0600 显然不在 0700 和 0950 之间。无法弄清楚。哼!
-
start_time 和 end_time 应该是数字,而不是字符串
-
@MariusIlie:为什么它们应该是数字?使用 4 个字符的字符串表示时间是完全有效的,它一直都在完成。请记住,这是一个自定义表,不是字段 API 的一部分。
-
对不起,我的错。你也可以使用字符串。但您还需要
GROUP BY子句
标签: mysql drupal-7 drupal-modules