mysql - 使 Zend\Db (zf2) 包含在子句之间

标签 mysql zend-framework2 between

我目前正在使用 Zend Framework 2 和一个带有日期范围的查询来从 MySQL 数据库中获取数据,我遇到了以前在 ZF1 中不可用的 between 子句。

但是,我的代码看起来像这样无法正常工作:

   $dateStart = '2012-12-20';
   $dateEnd = '2012-12-31';

   $sql = new Sql($_db);
   $select = $sql->select()
                ->from(array("t" => $table))
                ->columns(array("col1" => "col_as_1", "col2" => "col_as_2"));

 $select->where->between("date", $dateStart, $dateEnd);
 $stmt = $sql->prepareStatementForSqlObject($select);
 $result = $stmt->execute()->getResource()->fetchAll(\PDO::FETCH_ASSOC);

显然 between 子句不包含在内,我只能在 2012-12-30 之前得到结果,有没有办法让它包含在内?我一直在查看 ZF2 文档,但它们不是很有用,在 MySQL 查询浏览器上运行相同的查询会返回我需要的所有数据。

最佳答案

所以你可以试试lessThanOrEqualTogreaterThanOrEqualTo .

Between 似乎不提供此功能:between($identifier, $minValue, $maxValue)

如果您使用 $select->__toString() 追踪您的查询您可以将查询视为字符串。

我的电脑上没有 ZF2,但我可以想象 between在 ZF2 中将输出 date > '2012-12-20' AND date < '2012-12-31' .

关于mysql - 使 Zend\Db (zf2) 包含在子句之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14221292/

相关文章:

php - 服务层的数据访问和安全(Doctrine & ZF)

sql - 如何在 SQL Server 中的两个日期之间进行选择

mysql - 当表不为空时返回记录

php - 使用一个参数 pdo 查询两个表

mysql - 如何在 MySQL 的 WHERE 子句中使用子查询表别名

php - Zend framework 2 - 提交表单错误时使表单字段变粘

php - ZF2必填字段为空时如何设置消息?

mysql - MyISAM 表使用带有 ORDER BY 的文件排序,为什么?

mysql - Mono、mysql、fluent nhibernate 和 TdsInternalException

sql - DB2 上周日到下周六的语句之间