在过去24小时内获取添加到数据库表的行

时间:2014-03-01 07:42:03

标签: php codeigniter

我的表create_date中有products (顺便说一句,此列是varchar)列我使用的是codeigniter,所以我像这样与表进行通信:

function get_recent_products()
{
    $query = $this->db->get_where('products', array('create_date' => date('y-d-m')));
    return $query->result_array();
}

使用上述功能,我希望只能从最近24小时内添加的表中提取行。系统将日期存储为:2014-02-28

请帮我解决这个问题!

2 个答案:

答案 0 :(得分:0)

要保留check_date的原始列类型,请使用此选项:

ALTER TABLE `table_name`
ADD COLUMN `check_date_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00';

UPDATE TABLE `table_name`
SET `check_date_time` = `create_date` LIMIT 9999999999999999;

从那里你应该可以从最后一天打电话,你可以开始填写这个字段以产生时间:)

答案 1 :(得分:0)

如果日期作为2014-02-28存储在varchar列中,那么您希望对date()函数使用以下格式:

date('Y-m-d')

请注意,案例很重要。您使用的格式date('y-d-m')会为您提供14-28-02

您还需要将适当的时间戳传递给date()函数。默认值为time()

如果要选择过去24小时的记录而不是特定日期的记录,则还需要存储时间。我建议使用datetime列将日期和时间存储在一个字段中。这使您能够直接在SQL语句中进行大量的日期和时间计算。