我在我的项目中使用Moloquent作为mongoDB,我的日期以2015-09-28 03:30:00
格式存储在mongoDB中,并希望编写类似
select * from table where date(storeddate)='2015-09-28'
和
select * from table where year(storeddate)='2015'
使用Moloquent在mongoDB中。
答案 0 :(得分:2)
您可以使用查询构建器在构建日期范围时利用本机MongoDate对象,然后可以在查询中使用该日期范围。例如,以下查询
select * from users where date(storeddate)='2015-09-28'
可以写成
$start = new MongoDate(strtotime("2015-09-28 00:00:00"));
$end = new MongoDate(strtotime("2015-09-29 00:00:00"));
$users = DB::collection('users')->whereBetween('storeddate', array($start, $end))->get();
Eloquent还支持Carbon或DateTime对象,而不是MongoDate对象,当保存到数据库时,这些对象将在内部转换为MongoDate对象。
使用与上面相同的示例,如果要查询来自用户数据的记录,其中mongodb日期时间字段storeddate
年份部分是2015
select * from users where year(storeddate)='2015'
使用Carbon createFromDate()
属性创建跨越一年的日期范围:
$users = User::whereBetween(
'storeddate', array(
Carbon::createFromDate(2015, 1, 1),
Carbon::createFromDate(2015, 12, 31)
)
)->get();