【问题标题】:Codeigniter database date-compareCodeigniter 数据库日期比较
【发布时间】:2012-02-08 09:52:21
【问题描述】:

我在使用 activerecord 将数据库中的日期与一周后的日期进行比较时遇到问题。我正在尝试返回开始日期不到一周的事件列表。

event_start_date的格式为2011-06-30 09:00:00

$this->db->select('event_id,title,event_start_date,location');
$this->db->where('event_start_date <=',DATE_ADD(NOW(),INTERVAL 7 DAYS ));
$query = $this->db->get('sd_events');

无法为此制定正确的语法,任何帮助将不胜感激:-)

【问题讨论】:

    标签: mysql codeigniter date


    【解决方案1】:

    您可以只使用第一个参数来接受带有 ->where 的函数。

    $this->db->select('event_id,title,event_start_date,location');
    $this->db->where('event_start_date <= DATE_ADD(NOW(),INTERVAL 7 DAYS)', null);
    $query = $this->db->get('sd_events');
    

    这应该把它放在你的 WHERE 语句中。否则,它会将您的“DATE_ADD”用不计算的单引号括起来。

    【讨论】:

      【解决方案2】:

      两件事。首先,您是否尝试过将 where 子句放在这样的引号中:

      $this->db->where('event_start_date <=','DATE_ADD(NOW(),INTERVAL 7 DAYS )');
      

      其次,如有必要,只需跳过使用 where 函数并将整个查询放入如下:

      $this->db->query('SELECT event_id,title,event_start_date,location FROM sd_events WHERE event_start_date <= DATE_ADD(NOW(),INTERVAL 7 DAYS )');
      

      【讨论】:

      • 是的,我最终只写了一个大查询并这样做了,这是一种耻辱,因为将其分解为单独的行使其更易于阅读。
      • 讨厌使用 where() 有什么用?是因为代码慢吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-04
      • 1970-01-01
      • 2020-10-28
      • 1970-01-01
      • 1970-01-01
      • 2020-10-09
      相关资源
      最近更新 更多