Codeigniter 数据库日期比较
Posted
技术标签:
【中文标题】Codeigniter 数据库日期比较【英文标题】:Codeigniter database date-compare 【发布时间】: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');
无法为此制定正确的语法,任何帮助将不胜感激:-)
【问题讨论】:
【参考方案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() 有什么用?是因为代码慢吗?以上是关于Codeigniter 数据库日期比较的主要内容,如果未能解决你的问题,请参考以下文章
Codeigniter 日期比较 - 大于或小于日期时间字段不起作用
php/Codeigniter——如何通过排除时间来仅比较日期
mysql utcdate 字符串比较codeigniter