【问题标题】:Retrieving all ORM records with a given year in a date检索日期中给定年份的所有 ORM 记录
【发布时间】:2013-02-19 19:44:43
【问题描述】:

所以我有一个简单的模型,它有一个 date 属性,它作为 MySQL DATE 值(即2013-02-19)存储在数据库中。

检索日期为 2012 年的所有记录的最佳方法是什么?

【问题讨论】:

    标签: mysql date search orm kohana


    【解决方案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 查询解决方案。
    猜你喜欢
    • 2019-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    • 1970-01-01
    • 2012-11-23
    • 1970-01-01
    相关资源
    最近更新 更多