【问题标题】:How to get only date from datetime in CodeIgniter?如何仅从 CodeIgniter 中的日期时间获取日期?
【发布时间】:2011-12-18 10:42:38
【问题描述】:

我在 MySQL 表中有如下数据:

ID     dates                   value
1    2011-12-18 10:11:12      test1
2    2011-12-18 12:11:12      test2
3    2011-11-18 10:19:11      test3

当我试图在模块中获取价值时它不起作用,我编写如下代码:

$query=$this->db->get_where('datas', array('dates' => date('Y-m-d')));

我需要获取一整天的数据,就像仅从 2011-12-18 获取数据一样。

谢谢

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

    试试这个:

    $date="2018-09-19";
    $this->db->select('*');
    $this->db->from('tbl_name');
    $this->db->where('DATE(date_time_col)', $date);
    $query = $this->db->get();
    $res= $query->result();

    【讨论】:

      【解决方案2】:

      试试$this->db->like();

      原来如此

      $query=$this->db->like('dates', array('dates' => date('Y-m-d')));
      

      % 将被自动添加

      你也有数据作为键,并且应该是基于数据库结构的日期

      【讨论】:

        【解决方案3】:

        您可以执行以下操作:

        在您的表格中,创建一个名为 tsint 字段

        当您将数据插入此表时,使用 time() 方法将时间戳插入 ts

        $data = array(
           'dates' => '<your date value>' ,
           'value' => '<your value>' ,
           'ts'    => time()
        );
        
        $this->db->insert('datas', $data); 
        

        那么,查询时:

        使用 mktime() 方法为今天的开始和结束创建时间戳范围。

        $start = mktime() - date('h')*3600;    
        $end   = mktime(); 
        
        $this->db->where('ts >=', $start);
        $this->db->where('ts <=', $end);
        

        确保您已索引 ts 列。在较大的数据集上,这也将比上述 LIKE 方法更快。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-11-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-10
          • 1970-01-01
          相关资源
          最近更新 更多