无法通过created_at字段从DB获取记录

时间:2014-07-18 12:18:09

标签: php sql datetime laravel-4 eloquent

我需要使用' created_at'从数据库获取数据。最近14天的字段。我正在使用laravel 4。

当我选择这样的时候

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

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

2 个答案:

答案 0 :(得分:2)

结果是正确的,时间戳是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)。

答案 1 :(得分:0)

试试这个

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