【问题标题】:How to get data for current month from different dates of data? [duplicate]如何从不同日期的数据中获取当月的数据? [复制]
【发布时间】:2016-01-04 06:45:16
【问题描述】:

我每个月都有用户出席。现在我只想获取当前月份的数据。

我上网查了一下发现

日期('F Y');

返回当前月份和年份。但我不知道如何使用它来获取当月数据

我的模型代码是:

public function monthly_login()
 {

      $this->db->select('*');

      $this->db->from('daily_data2');

      $this->db->where('date_data', date('F Y'));

      $this->db->where('entry >','100');

      $this->db->order_by("date_data","ASC");

      $this->db->join('users', 'users.emp_id = daily_data2.emp_id','inner');

      $query = $this->db->get();


       echo $this->db->last_query();
       $res   = $query->result();        

      return $res;

}

它返回这个查询:

SELECT * FROM (`daily_data2`) INNER JOIN `users` ON `users`.`emp_id` = `daily_data2`.`emp_id` WHERE `date_data` = 'January 2016' AND `entry` > '100' ORDER BY `date_data` ASCarray(0) { }

现在在我的数据库中,我有一个名为 data_data 的字段,它的日期是这样的:

2015-11-04 13:29:32

那么我的查询应该是什么,只获取当前月份的数据。

【问题讨论】:

  • $this->db->where('date_data', date('F Y')); 替换为$this->db->where('MONTH(date_data)', date('m'));
  • 感谢@Uchiha 它有效
  • 对数据使用函数来适应过滤条件在 SQL 术语中是一种糟糕的方法。因此,尽管此类问题之前已被多次回答,但不一定是已选择的最佳答案。
  • @Uchiha 最后一个月怎么弄??
  • 非常感谢@Uchiha 这周有什么事吗?

标签: php mysql codeigniter


【解决方案1】:

请将您的函数替换为以下代码:

public function monthly_login()
 {

      $this->db->select('*');
      $this->db->from('daily_data2');
      $this->db->where('MONTH(date_data)', date('m')); //For current month
      $this->db->where('YEAR(date_data)', date('Y')); // For current year
      $this->db->where('entry >','100');
      $this->db->order_by("date_data","ASC");
      $this->db->join('users', 'users.emp_id = daily_data2.emp_id','inner');
      $query = $this->db->get();


       echo $this->db->last_query();
       $res   = $query->result();        
      return $res;

    }

【讨论】:

  • 你也可以通过$this->db->where('MONTH(date_data)', MONTH(NOW());一个mysql的方法来做到这一点
  • @DishaV。如何获得上周? $this->db->where('WEEK(date_data)', WEEK(NOW());
  • 还是上个月??而不是当月
  • @DishaV。 $this->db->where('MONTH(date_data)', MONTH(NOW());应该是$this->db->where('MONTH(date_data)', MONTH(NOW()));你错过了最后一个)
  • @Uchiha 这个查询正确吗? $this->db->where('MONTH(date_data)', date('Y-n-j',strtotime("")));
猜你喜欢
  • 2013-08-12
  • 2020-02-16
  • 2021-04-04
  • 2012-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多