CodeIgniter 查询可按提交的年、月或日值搜索日期时间列

问题描述 投票:0回答:2

我有一个存储行程详细信息的行程表。其中一个字段存储日期,类型为 DATETIME 。我正在按日期创建搜索查询。

$q can be
$q = 2012   when searching for years
$q = 1-12   when searching for months
$q = 1-31   when searching for days

但是当搜索时,在选项卡中说02月份,有很多行,其中一些是

2002-02-13 04:44:48, 2013-02-13 04:44:48, 2013-02-13 02:44:48
等,所有这些都会显示,因为它们都包含02。但我的目的是在月份中获得 02 的行。我该怎么做以及什么是合适的方法。

function search($q){

    $this->db->select('*');
    $this->db->from('trips');
    $this->db->like('date',$q);

    // Execute the query.
    $query = $this->db->get();

    // Return the results.
    return $query->result_array();
}

我可以通过将日、月、年存储在不同的字段中来完成它,但是无论如何都可以按照我所说的方式做到这一点。

php datetime codeigniter activerecord query-builder
2个回答
1
投票

尝试这个而不是你的

like
子句:

$this->db->where(array('MONTH(`date`)'=>$q));

0
投票

尝试使用你可以做的原生sql查询

$month = 02;
$sql = "SELECT MONTH(date) FROM notification where MONTH(date) = ?;";
$query = $this->db->query($sql,array($month));

MySQL 具有诸如月、日和年之类的函数来与日期时间字段一起使用。

© www.soinside.com 2019 - 2024. All rights reserved.