【发布时间】:2016-11-14 22:21:36
【问题描述】:
所以我正在尝试从我的后端(使用 Laravel 用 php 编写)构建对我的 SQL 数据库的查询。我的数据库中有一个表,其中有一列名为“created_at”,带有“timestamp”类型的值。我想要做的是,当我向我的数据库发送查询时,只选择从当前日期起 30 天或更短时间创建的表的行(或实例,我猜)。我已经尝试过使用“where”关键字来回试验,但我无法让它按我的意愿工作。
当我浏览数据库中的表格时,日期以“YYYY-MM-DD hh:mm:ss”格式写入,但我不知道当它们采用这种格式时如何比较它们,并且我不知道如何在进行查询时转换它们。我查看了 Laravel 中的 whereBetween() 方法,但我没有让它起作用,因为我不知道如何比较它们。
目前我的查询如下所示:
$topUser = DB::table('statistics')
->join('users', 'statistics.user_id', '=', 'users.id', 'inner')
->select('fname', 'user_id', DB::raw('sum(price) as total_collection'))
->groupBy('user_id')
->orderBy('total_collection','desc')
->get();
我想要做的,在伪代码中,是这样的;
->where 'created_at' <= 30 days ago
提前致谢!
【问题讨论】:
-
WHERE("created_at", "<=", DB::raw("NOW() - INTERVAL 30 DAY"))?
标签: php sql-server database laravel timestamp