Php Mysql将以下格式的日期保存为月份的Varchar列的总和值
我有一个名为weekly periods(varchar)的Mysql列,列中的日期以以下格式列出startperiod EndperiodPhp Mysql将以下格式的日期保存为月份的Varchar列的总和值,php,mysql,date,Php,Mysql,Date,我有一个名为weekly periods(varchar)的Mysql列,列中的日期以以下格式列出startperiod Endperiod weekly_periods Amount 01/01/16 - 10/01/16 100 11/01/16 - 17/01/16 20 18/01/16 - 24/01/16 10 25/01/16 - 31/01/16 300 01/02/16 - 07/02/16 250 08/02/16 - 14/0
weekly_periods Amount
01/01/16 - 10/01/16 100
11/01/16 - 17/01/16 20
18/01/16 - 24/01/16 10
25/01/16 - 31/01/16 300
01/02/16 - 07/02/16 250
08/02/16 - 14/02/16 100
对于上表中的价值和每月分组的最佳方法,您有什么想法吗
正在尝试获得以下输出
January :430 February:350
试试这个:
SELECT YEAR(STR_TO_DATE(LEFT(weekly_periods, 8), '%d/%m/%Y')) AS PeriodYear
, MONTH(STR_TO_DATE(LEFT(weekly_periods, 8), '%d/%m/%Y')) AS PeriodMonth
, SUM(Amount) AS TotalAmount
FROM my_table
GROUP BY PeriodYear, PeriodMonth;
输出:
| PeriodYear | PeriodMonth | TotalAmount |
|------------|-------------|-------------|
| 2016 | 1 | 430 |
| 2016 | 2 | 350 |
|周期年|周期月|总金额|
|------------|-------------|-------------|
| 2016 | 1 | 430 |
| 2016 | 2 | 350 |
呻吟。。。你为什么要这样对自己?我们能假设所有的周期都在同一个月开始和结束吗?月与月之间的日期会重叠吗?比如说,是否有2016年1月15日至2016年2月10日的条目?是的,因为它基于发薪期,标准的52个发薪期。所以我试着把发薪期和最近的月份相加。每月4个周期。23/01/17-29/01/17 500 30/01/17-05/02/17 200它导致值700出现在1月份,而2月份没有出现。。你知道怎么修理吗that@user3548161我特别提到这一点。你知道这不是一个问题。是的,没错@shmosel我发现我的逻辑是错误的,在使用了一段时间后,我发现最好将数据分组,这样它就不会超过圈数。