我想当CodeIgniter中的timing
日期小于当前日期时,它应该自动删除行。
我有一个名为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");
}
请让我知道我的代码的错误
答案 0 :(得分:1)
使用此
$this->db->where("timings < DATE_SUB(curdate(), INTERVAL 1 DAY)",NULL,FALSE);
$this->db->delete("doctors");
答案 1 :(得分:0)
您应该使用MySql的NOW()
函数。 NOW()
返回系统日期,它也与MySql查询兼容。
public function delete_book(){
//$date = date("m/d/Y");
$this->db->where("timings < (NOW() - INTERVAL 1 DAY)");
$this->db->delete("doctors");
}
答案 2 :(得分:0)
工作可能会使用
$this->db->where('timings BETWEEN NOW() - INTERVAL 1 DAY AND NOW()', "", false);
$this->db->delete("doctors");
希望完全有效。
答案 3 :(得分:-1)
您可以使用DATE_SUB功能
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)