在本周内查询数据库'为了约会

时间:2015-10-13 16:34:37

标签: php mysql case increment

我想使用以下查询:

SELECT concat(firstname,' ', surname) AS 'Fname', 
MAX(CASE WHEN DAYOFWEEK(date) = 1 THEN concat(starttime,'-', endtime) END) `Sunday`,
MAX(CASE WHEN DAYOFWEEK(date) = 2 THEN concat(starttime,'-', endtime) END) `Monday`,
MAX(CASE WHEN DAYOFWEEK(date) = 3 THEN concat(starttime,'-', endtime)  END) `Tuesday`,
MAX(CASE WHEN DAYOFWEEK(date) = 4 THEN concat(starttime,'-', endtime)  END) `Wednesday`,
MAX(CASE WHEN DAYOFWEEK(date) = 5 THEN concat(starttime,'-', endtime)  END) `Thursday`,
MAX(CASE WHEN DAYOFWEEK(date) = 6 THEN concat(starttime,'-', endtime)  END) `Friday`,
MAX(CASE WHEN DAYOFWEEK(date) = 7 THEN concat(starttime,'-', endtime)  END) `Saturday`
FROM shifts NATURAL JOIN employees
GROUP BY Fname, date

并以某种方式修改它以仅显示THIS WEEKS值,如下所示:

SELECT concat(firstname,' ', surname) AS 'Fname', 
MAX(CASE WHEN (DAYOFWEEK(date) = 1 AND WITHIN THIS WEEK) THEN concat(starttime,'-', endtime) END) `Sunday`,
etc... etc...

这可以通过mySQL吗?

1 个答案:

答案 0 :(得分:0)

问题是:你在谈论哪个星期?我会使用select语句的where标准部分来过滤这段时间,但是,你需要定义哪一周是你所谈论的那一周。

  1. 如果您知道一周的确切开始和结束日期,请在......和......之间使用:

    ... ......和...之间的日期

  2. 使用week()(或weekofyear())和year()函数获取一周的日期(请注意,一周的开始日期是一个可配置的变量,请参阅一周的链接( )详情):

    ...其中年份(日期)= ...和周(日期)= ...

  3. 与上一个逻辑相同,只需使用date_format()即可获得年份和星期组合。