嗨,我正在尝试从数据库获取结果,其中我的表列 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
谁能帮助我我的确切问题是什么?
谢谢。
答案 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 . "'");