无法删除codeigniter中的行

4bbkushb  于 2021-06-18  发布在  Mysql
关注(0)|答案(4)|浏览(300)

我想当 timing codeigniter中的日期小于当前日期,则应自动删除行。我有一张table叫 doctor . 田野里到处都是 id(int) ,
crated_at(timestamp) timings(varchar) , name(varchar) .
我习惯于把时间插进去 mm/dd/yyyy 格式。我想当日期小于当前日期时,则应自动删除行。
模型

public function delete_book(){
    $date  = date("m/d/Y");
    $this->db->where("timings < (".$date." - INTERVAL 1 DAY)");
    $this->db->delete("doctors");

}

请告诉我代码的错误

s5a0g9ez

s5a0g9ez1#

您可以使用date\u子函数

public function delete_book(){
    $this->db->where("timings < DATE_SUB(curdate(), INTERVAL 1 DAY)");
    $this->db->delete("doctors");

}

上述函数产生的查询是:-

DELETE FROM `doctors` WHERE `timings` < DATE_SUB(curdate(), INTERVAL 1 DAY)
r3i60tvu

r3i60tvu2#

将工作可能使用

$this->db->where('timings BETWEEN NOW() - INTERVAL 1 DAY AND NOW()', "", false);
$this->db->delete("doctors");

希望一切顺利。

rsaldnfx

rsaldnfx3#

你应该使用 NOW() mysql的功能。 NOW() 返回系统的日期,并且与mysql查询兼容。

public function delete_book(){
    //$date  = date("m/d/Y");
    $this->db->where("timings < (NOW() - INTERVAL 1 DAY)");
    $this->db->delete("doctors");

}
kmbjn2e3

kmbjn2e34#

用这个

$this->db->where("timings < DATE_SUB(curdate(), INTERVAL 1 DAY)",NULL,FALSE);
$this->db->delete("doctors");

相关问题