将数据库时间戳记值与今天的日期进行比较,并在codeigniter中获得结果

时间:2018-07-27 06:34:03

标签: mysql codeigniter

嗨,我正在尝试从数据库获取结果,其中我的表列 displaytime 等于今天的日期。

所以我试图通过使用where检查该条件。但是我不知道帽子是不是显示查询错误的问题

这是我的模特:

function getDashboardContent() {
    $today = date('Y-m-d H-i');
    $this->db->select('cd.details,g.displaytime');
    $this->db->where('cd.typeofinfo', 2);
    $this->db->where("DATE_FORMAT(g.displaytime,'%Y-%m-%d %H-%i')", $today );
    $this->db->from('contentdetails cd');
    $this->db->join('content c', 'c.id = cd.contentid');
    $this->db->join('group_content gc', 'gc.contentid = c.id');
    $this->db->join('groups g', 'g.id = gc.groupid');
   $this->db->order_by('cd.id',"DESC");
    $this->db->limit('1');
    $query = $this->db->get();
    print_r($query);
    exit;
    return $query->result();
  }

这是我的错误:

    Error Number: 1064

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''2018-07-27 12-02' ORDER BY `cd`.`id` DESC LIMIT 1' at line 7

SELECT `cd`.`details`, `g`.`displaytime` FROM `contentdetails` `cd` JOIN `content` `c` ON `c`.`id` = `cd`.`contentid` JOIN `group_content` `gc` ON `gc`.`contentid` = `c`.`id` JOIN `groups` `g` ON `g`.`id` = `gc`.`groupid` WHERE `cd`.`typeofinfo` = 2 AND DATE_FORMAT(g.displaytime,'%Y-%m-%d %H-%i') '2018-07-27 12-02' ORDER BY `cd`.`id` DESC LIMIT 1

谁能帮助我我的确切问题是什么?

谢谢。

2 个答案:

答案 0 :(得分:1)

为什么不将日期时间更改为时间戳,然后像这样进行比较

  

$ this-> db-> where(“ TO_SECONDS(g.displaytime)”,strtotime($ today));

这可能会对您有所帮助。

答案 1 :(得分:0)

我已经通过更改此行解决了我的问题

$this->db->where("DATE_FORMAT(g.displaytime,'%Y-%m-%d %H-%i')!=", "$today" );

 $this->db->where("DATE_FORMAT(g.displaytime,'%Y-%m-%d %H-%i') = '" . $today . "'");