2014-07-18 48 views
1

我需要在最近14天内通过'created_at'字段从数据库获取数据。我使用laravel 4.无法通过created_at字段从数据库获取记录

当我选择这样

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

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

+0

您正在使用什么样的数据库? – Mark

回答

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(); 

note使用碳将不利于在这里以任何方式(除非再次,时间戳的时间部分是00:00:00)。

+0

谢谢你,它的工作 – gioch

0

试试这个

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