php – 如何生成星期表并按日和小时分组
发布时间:2020-12-13 22:23:42 所属栏目:PHP教程 来源:网络整理
导读:首先,要明确;有一个这样的例子: 我可以通过这个查询获得课程: $qb -select("c") -from("ATLReservationBundle:Course","c") -where("WEEK(c.courseDate,1) = WEEK(CURRENT_DATE(),1)") -orderBy("c.courseDate","ASC"); QueryResult中: { "courses": [ {
首先,要明确;有一个这样的例子:
我可以通过这个查询获得课程: $qb ->select("c") ->from("ATLReservationBundle:Course","c") ->where("WEEK(c.courseDate,1) = WEEK(CURRENT_DATE(),1)") ->orderBy("c.courseDate","ASC"); QueryResult中: { "courses": [ { "id": 110,"name": "Pilates","quota": 8,"course_date": "2015-08-31T12:15:00+0000","studio": { "id": 2,"name": "Stüdyo 2" },"trainer": { "id": 1,"name": "-" } },{ "id": 135,"name": "Spinning","course_date": "2015-08-31T19:30:00+0000",{ "id": 154,"name": "Kick Box","quota": 6,"course_date": "2015-08-31T20:00:00+0000","studio": { "id": 1,"name": "Stüdyo 1" },{ "id": 133,"course_date": "2015-09-01T12:15:00+0000",{ "id": 113,"name": "Crunch 30 Min.","course_date": "2015-09-01T18:30:00+0000",{ "id": 112,"course_date": "2015-09-01T19:00:00+0000",{ "id": 150,"course_date": "2015-09-01T19:30:00+0000",{ "id": 136,"name": "TRX Group","quota": 5,"course_date": "2015-09-01T20:00:00+0000",{ "id": 159,"course_date": "2015-09-02T10:00:00+0000",{ "id": 156,"name": "Stretching","quota": 7,"course_date": "2015-09-02T18:30:00+0000",{ "id": 127,"name": "Zumba","course_date": "2015-09-02T19:00:00+0000",{ "id": 148,"course_date": "2015-09-02T20:00:00+0000",{ "id": 138,"course_date": "2015-09-03T12:15:00+0000",{ "id": 121,"course_date": "2015-09-03T19:00:00+0000",{ "id": 117,"name": "TRX","course_date": "2015-09-03T20:00:00+0000",{ "id": 131,{ "id": 142,"course_date": "2015-09-04T12:15:00+0000",{ "id": 147,"name": "LBT 30 min.","course_date": "2015-09-04T19:00:00+0000",{ "id": 141,"course_date": "2015-09-04T19:30:00+0000",{ "id": 130,"course_date": "2015-09-05T14:00:00+0000","name": "-" } } ] } 但我想将这些数据分组为; DAY - 31 HOUR - 12:15 > Coursename HOUR - 19:30 > Coursename DAY - 01 HOUR - 10:00... 我不知道怎么做,有人吗? UPDATE 新查询: $qb ->select("c,HOUR(c.courseDate) as hour,DAY(c.courseDate) as day") ->from("ATLReservationBundle:Course","c") ->where("WEEK(c.courseDate,1)") ->orderBy("c.courseDate","ASC") ->groupBy("hour,day"); 但;这个查询有问题我不能按小时(c.courseDate),DAY(c.courseDate)分组,因为我收到了这个错误:
因此,我将时间和日期定义为选择区域中的变量. QueryResult中: { "courses": [ { "0": { "id": 110,"studio": { "id": 2,"name": "Stüdyo 2" },"trainer": { "id": 1,"name": "-" } },"hour": "12","day": "31" },{ "0": { "id": 135,"hour": "19",{ "0": { "id": 154,"studio": { "id": 1,"name": "Stüdyo 1" },"hour": "20",{ "0": { "id": 133,"day": "1" },{ "0": { "id": 113,"hour": "18",{ "0": { "id": 112,{ "0": { "id": 136,{ "0": { "id": 159,"hour": "10","day": "2" },{ "0": { "id": 156,{ "0": { "id": 127,{ "0": { "id": 148,{ "0": { "id": 138,"day": "3" },{ "0": { "id": 121,{ "0": { "id": 117,{ "0": { "id": 142,"day": "4" },{ "0": { "id": 141,{ "0": { "id": 130,"hour": "14","day": "5" } ] } 我想我现在很接近.但它一定是这样的; DAY HOUR HOUR DAY HOUR HOUR 解决方法
要获取可视化示例表,请使用:
select hour(date),-- group by hour case when weekday(date)=0 then course_name else null end as Monday,-- 1 col for each weekday ..... case when weekday(date)=6 then course_name else null end as Sunday from table where -- select a monday to sunday calendar week unique by year date(date) - interval weekday(date)=date(curdate()) - interval weekday(curdate()) group by hour(date) 要获得您提到的其他变体: select right(date,2),-- day of month,hour(date) --hour,course_name from table group by 1,2 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |