mysql - Laravel Between 子句返回 null

标签 mysql sql laravel

我在 Laravel 中得到了这样的 SQL

$scheduleMap=array("schedule_id"=>$scheduleId);
$scheduleConsume=DB::connection("mysql_report")->table("xxx")
->where($scheduleMap)
->whereBetween(DB::Raw("TO_DAYS(FROM_UNIXTIME(report_time))"),array(DB::Raw("TO_DAYS('".$startDate."')"),DB::Raw("TO_DAYS('".$startDate."')")))
->select(DB::Raw("SUM(imp_num) as imp_num"))
->first();

我将 SQL 打印为

select SUM(imp_num) as imp_num from `xxx` 
where TO_DAYS(FROM_UNIXTIME(report_time)) 
between TO_DAYS('2016-11-05') 
and TO_DAYS('2016-11-12') 

然后我尝试在navicat中运行sql,它运行良好,但在laravel中,它返回null。 我不明白!我现在必须使用 whereRaw。

最佳答案

试试这个:)

$scheduleConsume = DB::connection("mysql_report")
                     ->table('xxx')
                     ->where('schedule_id', $scheduleId)
                     ->whereBetween(
                        DB::Raw("TO_DAYS(FROM_UNIXTIME(report_time))"), [
                          DB::Raw("TO_DAYS('".$startDate."')"),DB::Raw("TO_DAYS('".$startDate."')")
                        ]
                      )
                     ->select(DB::Raw("SUM(imp_num) as imp_num"))
                     ->first();

关于mysql - Laravel Between 子句返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40923943/

相关文章:

c# - 连接超时 VS IIS

mysql - 如何创建 MySQL/PHP 子查询来计算与某个值匹配的记录数?

php - 如何解决创建多个静态页面的问题

Mysql string to date with given format containing a timezone specifier

mysql - SQL SELECT 3 个具有 2 个不同 ID 的表

sql - 选择不同的值计数 laravel

php - 从MySQL的两个表中获取数据,并根据两个表中的数据进行ORDER

sql - Oracle apex_json.parse,速度

php - Laravel:PHP Artisan Tinker 'SQLSTATE[23000]' 错误

laravel - 使用 Laravel 每天安排两次任务