【问题标题】:How to convert date time stamp in query itself如何在查询本身中转换日期时间戳
【发布时间】:2016-04-12 13:02:59
【问题描述】:

有什么方法可以将mysql数据库日期字段转换为查询本身中的strtotime之类的时间戳?

我的代码:

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

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

【问题讨论】:

  • 感谢回复,请问有什么办法可以查询本身吗?
  • post $start_date 格式.. 它是这样的:1222093324
  • 你说的query itself是什么意思??
  • @youv effectdate 格式怎么样?
  • 然后将$start_date$end_date转换成“Y-m-d”格式

标签: codeigniter


【解决方案1】:

1) STR_TO_DATE() //将字符串转换为日期(varchar => date)。

2) UNIX_TIMESTAMP() // 将日期转换为 unix 时间戳(日期 => 时间戳)。

$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 是字符串列中的日期格式。请用您的日期格式替换它

【讨论】:

    【解决方案2】:

    试试

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

    而不是使用&gt;= & &lt;=使用between

    【讨论】:

      【解决方案3】:

      试试这个

      $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();
      

      【讨论】:

      • 谢谢,其实我需要转换生效日期,可以吗
      • 试试这个DATE_FORMAT(effectdate , '%Y-%m-%d')。也检查此链接w3schools.com/sql/func_date_format.asp
      • @Abdulla 你是伟大的人,你很活跃,我看到很多问题,你的回答我真的从你那里得到启发
      猜你喜欢
      • 2019-03-31
      • 1970-01-01
      • 2022-01-10
      • 2019-01-18
      • 2021-03-20
      • 1970-01-01
      • 1970-01-01
      • 2021-08-17
      相关资源
      最近更新 更多