php - 在两个日期之间搜索并按月份排序

标签 php mysql date

我对两个日期之间的搜索记录不熟悉,并且显示按月份(从一月到十二月)排序的记录。

我有这样的 table 。

Employee  |  Salary  |  Date from  |  Date To  
John A.   |   15000  | 2013-05-26  |  2013-06-10  
Mark      |   15000  | 2013-05-26  |  2013-06-10  
John A.   |   15000  | 2013-06-11  |  2013-06-25 
Mark      |   20000  | 2013-06-11  |  2013-06-25  

我希望报告像这样显示。

Employee  |   26 May - June 10   |  11 June - 25 June   | So on..  
John A.   |          15000       |         15000 
Mark      |          15000       |         20000          

请查看我的代码。这只会搜索两个日期之间的记录

SELECT * 
FROM payroll
WHERE datefrom >= '2013-01-01' 
AND dateto < '2013-12-31' 

请告诉我如何解决这个问题。

最佳答案

您需要对数据进行透视,不幸的是在mysql中,透视是静态的,因此您需要为每种情况编写它(但您可以使用脚本来做到这一点),下面您有一个仅用于示例数据的示例,但它可以待续。

试试这个:

SELECT  
    employee,
    SUM(IF(datefrom='2013-05-26' AND dateto='2013-06-10',Salary,0)) as `26 May - June 10`,
    SUM(IF(datefrom='2013-06-11' AND dateto='2013-06-25',Salary,0)) as `11 June - 25 June`
FROM 
    payroll
WHERE 
    datefrom >= '2013-01-01' 
    AND dateto < '2013-12-31' 
GROUP BY
    employee

关于php - 在两个日期之间搜索并按月份排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17336869/

相关文章:

php - 如何删除多余的数组值

java - Android - 日历数据未使用 putExtra() 发送

mysql - 如何使用加密密码连接mysql?

php - MySQL:如何获取评论内容和帖子标题

php - 如何格式化来自MYSQL的日期

php - file_get_contents 不返回整个网页

php - 使用 php 数组选择 mysql 数据不起作用

php - mysql历史数据和记录id

r - 使用 "lubridate"包编写 R 函数,该函数接受日期(例如 ."August 14")并返回十二生肖

javascript - 使用 Javascript 从日期中减去工作日