有没有办法将mysql数据库日期字段转换为查询本身中的strtotime时间戳?
我的代码:
$this->db->where('effectdate >= ',$start_date);
$this->db->where('effectdate <= ',$end_date);
$query = $this->db->get();
$ start_date和$ end_date是时间戳值,但数据库值是正常日期。无论如何将这些转换为时间戳? 请帮忙。
答案 0 :(得分:2)
1)STR_TO_DATE()//将字符串转换为日期(varchar =&gt; date)。
2)UNIX_TIMESTAMP()//将日期转换为unix时间戳(date =&gt; timestamp)。
$this->db->where('UNIX_TIMESTAMP(STR_TO_DATE(effectdate, "%Y-%m-%d")) >= ',$start_date);
$this->db->where('UNIX_TIMESTAMP(STR_TO_DATE(effectdate, "%Y-%m-%d")) <= ',$end_date);
注意:%Y-%m-%d是字符串列中的日期格式。请将其替换为您的日期格式
答案 1 :(得分:1)
尝试
$this->db->where('UNIX_TIMESTAMP(effectdate) >= ',$start_date);
$this->db->where('UNIX_TIMESTAMP(effectdate) <= ',$end_date);
$query = $this->db->get();
而不是使用>=
&amp; <=
使用between
答案 2 :(得分:0)
试试这个
$this->db->where('effectdate >= ',date('Y-m-d', strtotime($start_date)));
$this->db->where('effectdate <= ',date('Y-m-d', strtotime($end_date))));
$query = $this->db->get();