我正在尝试从指定日期选择记录
$yesterday = date('Y-m-d',strtotime("-1 days"));
$this->db->get_where('tablename', array('postid' => $dailystat['postid'], 'timestamp >=' => $yesterday));
但是即使表中有条目,我也没有获得任何记录。我还想确保查询选择在指定日期创建的唯一记录。
任何帮助将不胜感激。
$yesterday = date('Y-m-d',strtotime("-1 days"));
$this->db->get_where('tablename', array('postid' => $dailystat['postid'], 'timestamp >=' => $yesterday, 'timestamp <' => date('Y-m-d')));
如果您共享表架构和示例数据,我可以为您提供正确的答案。我仍然可以猜测您正在比较带有时间戳的日期字符串。代码$yesterday = date('Y-m-d',strtotime("-1 days"));
将返回$yesterday
值为 '2017-04-10'
。但实际上在您的数据库中,您正在比较时间戳字段,该字段以数值保存时间戳。
您可以使用 php strtotime 函数将任何日期转换为相应的时间戳。 strtotime($yesterday).
正确的代码将是:
$yesterday = date('Y-m-d',strtotime("-1 days"));
$this->db->get_where('tablename', array('postid' => $dailystat['postid'], 'timestamp >=' => strtotime($yesterday)));
再次请确保您的数据库字段时间戳仅以时间戳的形式存储日期。
另一种解决方案是,您可以使用 mysql 日期比较函数。