根据codeigniter中的特定日期选择记录

时间:2017-04-11 17:08:03

标签: php mysql codeigniter

我正在尝试从指定日期选择一条记录

$yesterday = date('Y-m-d',strtotime("-1 days"));
$this->db->get_where('tablename', array('postid' => $dailystat['postid'], 'timestamp >=' => $yesterday)); 

但即使表格中有条目,我也没有得到任何记录。我还想确保查询选择在指定日期创建的唯一记录。

任何帮助将不胜感激..

2 个答案:

答案 0 :(得分:0)

$yesterday = date('Y-m-d',strtotime("-1 days"));
$this->db->get_where('tablename', array('postid' => $dailystat['postid'], 'timestamp >=' => $yesterday, 'timestamp <' => date('Y-m-d')));

答案 1 :(得分:0)

如果您共享表架构和示例数据,我可以给您正确的答案。我仍然可以猜测你正在使用时间戳来比较日期字符串。 代码$yesterday = date('Y-m-d',strtotime("-1 days"));会将$yesterday值返回为'2017-04-10'。但实际上在您的数据库中,您可以使用timestamp字段进行比较,该字段将时间戳保存为数值。

您可以使用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日期比较功能。