【发布时间】:2019-11-25 11:56:49
【问题描述】:
我需要从 DB Week of the month 和 dates 中检索数据 能够从 MYSQL 查询中获取数据
SELECT cnt, `creationdate`, week, weekname,
DATE_ADD(firstOfMonth,INTERVAL (week-1) WEEK) as 'Week Start',
IF(DATE_ADD(firstOfMonth,INTERVAL ((week-1)*7+6) DAY) > eom,
eom, DATE_ADD(firstOfMonth,INTERVAL ((week-1)*7+6) DAY)) as 'Week End'
FROM (
SELECT COUNT(`firstname`) AS 'cnt', `creationdate`,
FLOOR((DAYOFMONTH(`creationdate`) - 1) / 7 +1) AS week,
CONCAT('Week ',FLOOR((DAYOFMONTH(`creationdate`) - 1) / 7) +1) AS weekname, DATE_ADD(`creationdate`,interval -DAY(`creationdate`)+1 DAY) AS firstOfMonth,
LAST_DAY(`creationdate`) as 'eom'
FROM `UserDetails` WHERE DATE_FORMAT(`creationdate`,'%m/%Y')='06/2017' GROUP BY week ) a
我正在转换为 laravel Raw Query 是
$monthOfWeaks = DB::table("UserDetails")
->select(DB::raw('cnt, creationdate, week, weekname,
DATE_ADD(firstOfMonth,INTERVAL (week-1) WEEK) as WeekStart,
DATE_ADD(firstOfMonth,INTERVAL ((week-1)*7+6) DAY) > eom, eom, DATE_ADD(firstOfMonth,INTERVAL ((week-1)*7+6) DAY)) as WeekEnd'))
->select(DB::raw('COUNT(`firstname`) as cnt, creationdate,
FLOOR((DAYOFMONTH(creationdate) - 1) / 7 +1) as week,
CONCAT(Week,FLOOR((DAYOFMONTH(creationdate) - 1) / 7) +1) as weekname,
DATE_ADD(creationdate,interval -DAY(creationdate)+1 DAY) as firstOfMonth,
LAST_DAY(creationdate) as eom'))
->whereRaw("DATE_FORMAT(creationdate,'%m/%Y')='06/2017')")
->groupBy(DB::raw("WEEK(creationdate)"))
->get();
似乎有些错误,但我无法在 laravel 中修复 请提供一些意见来解决我的问题? 谢谢。
【问题讨论】:
标签: php laravel laravel-5 eloquent