检索日期中给定年份的所有 ORM 记录
Posted
技术标签:
【中文标题】检索日期中给定年份的所有 ORM 记录【英文标题】:Retrieving all ORM records with a given year in a date 【发布时间】:2013-02-19 19:44:43 【问题描述】:所以我有一个简单的模型,它有一个 date
属性,它作为 mysql DATE
值(即2013-02-19
)存储在数据库中。
检索日期为 2012 年的所有记录的最佳方法是什么?
【问题讨论】:
【参考方案1】:您可以使用 ORM 查询生成器和 DB::expr() 方法获取 2012 年以来的所有记录:
$year = 2012;
$my_models = ORM::factory('MyModel')
->where(DB::expr('YEAR(`date`)'), '=', $year)
->find_all();
// $my_models will be a Database_Result object
// To get an array of ORM row objects, simply:
$my_models_rows = $my_models->as_array();
【讨论】:
这正是我想要的!我的 MySQL 生锈了,我忘记了很多东西(比如用单引号括起来的参数)。【参考方案2】:SELECT * FROM table_name WHERE YEAR(date_column) >= 2012;
【讨论】:
抱歉,我忘了明确说明我正在寻找 ORM 查询解决方案。以上是关于检索日期中给定年份的所有 ORM 记录的主要内容,如果未能解决你的问题,请参考以下文章