Kohana ORM:如何查询基于数据库中的字段计算的时间戳

Posted

技术标签:

【中文标题】Kohana ORM:如何查询基于数据库中的字段计算的时间戳【英文标题】:Kohana ORM: How to query for a timestamp that's calculated based on a field in the DB 【发布时间】:2012-05-06 11:51:44 【问题描述】:

简单表格:

start_date       TIMESTAMP
duration_days    INT

英文:我只想要没有经过duration 句点的行。

在 SQL 中:

SELECT * FROM MyTable WHERE now() < TIMESTAMPADD(DAY, duration_days, start_date);

如何在 Kohana/ORM 中执行此操作?对于我需要检索的许多行中的每一行,持续时间都不同。

【问题讨论】:

【参考方案1】:

只需使用where() 子句:

ORM::factory('MyTable')->where(DB::expr('now()'), '<', DB::expr('TIMESTAMPADD(DAY, duration_days, start_date)'))->find_all();

【讨论】:

以上是关于Kohana ORM:如何查询基于数据库中的字段计算的时间戳的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Kohana 中使用 ORM 连接表

Kohana 3.2 中使用 ORM 模型(结果)的字段的自定义过滤器

Kohana 3 ORM:如何使用 2 个多对多关系执行查询

Kohana 3.1 ORM 数据库查询

Kohana 3.0.x ORM:读取数据透视表中的其他列

Kohana 2 ORM 自定义主键生成错误