我在 CodeIgniter 中进行以下查询,以查找 date_created 字段小于 24 小时的任何数据。这是我在模型中的代码
public function checkDeposit($preOrder)
{
return $this->db->table('deposit')
->where('preorder_code', $preOrder)
->where('status', 0)
->where('date_created <', strtotime(date('YmdHis'), INTERVAL 1 DAY))
->get()
->getRowArray();
}
但是上面的查询不起作用。
简而言之,我想要的是,返回 date_created 小于 24 小时的所有行...
这是我的 date_created 格式
如何在 Models 中获取 24 小时以内的数据?
有几种方法可以做到这一点:
->where('filters.created_at >', \CodeIgniter\I18n\Time::now()->subDays(1)->getTimestamp())
->where(new CodeIgniter\Database\RawSql('filters.created_at > UNIX_TIMESTAMP(NOW() - INTERVAL 1 DAY)'))
->where(new CodeIgniter\Database\RawSql('filters.created_at > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 DAY))'))
->where('filters.created_at >', strtotime('-1 day'))
->where('filters.created_at >', (new \DateTimeImmutable())->modify('-1 day')->getTimestamp())
->where('filters.created_at >', (new \DateTimeImmutable())->sub(new \DateInterval('P1D'))->getTimestamp())
->where('filters.created_at >', date_timestamp_get(date_create('-1 day')))
选择其中一个。