如何在查询本身中转换日期时间戳

时间:2016-04-12 13:02:59

标签: codeigniter

有没有办法将mysql数据库日期字段转换为查询本身中的strtotime时间戳?

我的代码:

  $this->db->where('effectdate >= ',$start_date);
  $this->db->where('effectdate <= ',$end_date);
  $query = $this->db->get();

$ start_date和$ end_date是时间戳值,但数据库值是正常日期。无论如何将这些转换为时间戳? 请帮忙。

3 个答案:

答案 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();