不能通过created_at字段从DB中获取记录


Can't get record from DB by created_at field

我需要从数据库获得数据'created_at'字段为过去14天。我用的是laravel 4

当我像这样选择

$someDate = '2014-07-10'; // for example <br/>
$records = Records::where('created_at', '=', $someDate)->get();

它返回一个空数组,但我有$someDate时间戳的记录。我应该如何写一个正确的查询?

结果正确,时间戳为TIMESTAMP字段:

`created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'

所以传递一个字符串2014-07-01将返回预期的行只有当时间部分是00:00:00 (MySQL)。

改为使用DATE:

$records = Records::where(DB::raw('DATE(created_at)'), $someDate)->get();

注意使用Carbon在这里没有任何帮助(除非时间戳的时间部分是00:00:00)。

试试这个

$records = Records::where('created_at', '>', 'Carbon::parse('14 days ago'))->get();