2017-02-21 80 views
0

谁能帮我如何将SQL查询转换为Larvel 5.2将SQL查询转换为laravel 5.2?

首先查询(当月)

SELECT 
    * 
FROM 
    customer_allocations 
WHERE 
    YEAR(date) = YEAR(NOW()) AND MONTH(date) = MONTH(NOW()); 

二查询(本周)

SELECT 
    * 
FROM 
    customer_allocations 
WHERE 
    WEEKOFYEAR(date) = WEEKOFYEAR(NOW()); 

第三个查询(当前日期)

SELECT 
    * 
FROM 
    customer_allocations 
WHERE 
    YEAR(date) = YEAR(NOW()) AND 
    MONTH(date) = MONTH(NOW()) AND 
    DAY(date) = DAY(NOW()); 

这些SQL查询运行成功地在phpmyadmin,但我想在laravel实现任何人都可以帮助我。

我试图将这些查询转换,但我在这行代码得到一个错误信息:

CustomerAllocation::where([YEAR('date'),'=',YEAR(NOW()),MONTH('date'),'=', 
          MONTH(NOW())])->get(); 

这是错误:

Call to undefined function "App\Http\Controllers\YEAR()"

+0

它应该是'whereYear','whereMonth' ...检查这个[link](https://laravel.com/api/5.0/Illuminate/Database/Query/Builder.html#method_whereYear) – Thamilan

+0

你能转换任何一个查询到laravel – kunal

+0

对于你的场景,我想:'CustomerAllocation :: whereDate('date','=',date('Ym-d'));'会做 – Thamilan

回答

1

变化

CustomerAllocation::where([YEAR('date'),'=',YEAR(NOW()),MONTH('date'),'=',MONTH(NOW())])->get() 

CustomerAllocation::whereRaw("YEAR(date) = YEAR(NOW())")->whereRaw("MONTH(date) = MONTH(NOW())")->get() 

使用whereRaw()您想在其中放置检查自定义条件,就像您想要的那样。