gpt4 book ai didi

php - Zend_Db 和基于日期的查询

转载 作者:可可西里 更新时间:2023-11-01 07:31:53 26 4
gpt4 key购买 nike

我正在使用 Zend_Db 查询一个表。我有一些需要日期的 WHERE 子句,但不清楚(乍一看)如何“以正确的方式”执行此操作。 Zend_Db 是否提供了抽象,因此我不需要关心后端(Oracle、MySQL 等)如何预期它的日期?或者我是否需要按照我的后端期望的方式格式化内容。

我正在尝试使用基于 Oracle 的数据库执行以下操作(PO_DATE 是一个时间戳字段)

$table = $this->getDbTable();               
$select = $table->select()->where('1 = ?', 1);
$select->where('PO_DATE = ?', '2009-12-02');

我得到以下异常

  <b>Message:</b> 1843 ORA-01843: not a valid month SELECT "TABLE_NAME".* FROM "SYSTEM"."TABLE_NAME" WHERE (1 = 1) AND (PO_DATE = *'2009-12-02')  </p>

我意识到我可以做这样的事情

$date = new Zend_Db_Expr(
"to_date('2009-12-02', 'YYYY-MM-DD')"
);
$select->where('PO_DATE = ?', $date);

但这将我与 Oracle 基于日期的表达式联系在一起,这在一定程度上违背了使用 SQL 抽象层的目的。

是否有独立于 Zend_Db 后端实现的日期查询的通用方法?

最佳答案

我肯定想要这样的功能,但是,我在 Zend Framework 中找不到任何功能。这issue在他们的追踪器中也让我非常有信心它还没有出现。

关于php - Zend_Db 和基于日期的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1891727/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com