申请日期时MAX()有什么问题?

时间:2012-11-25 01:26:22

标签: php mysql

我对此发生的事情并不理想。

这很好用

SELECT 
SUM(LAMT)AS SUMAMT, 
COUNT(LAMT)AS CNT, 
IFNULL(LSUBDT,(CURDATE()-INTERVAL 9999 DAY))AS MXDT 
FROM product1 
WHERE LSUBBY IN (12,15,17,13,14,16) AND RECST=1 ORDER BY LSUBDT

它返回我(这是fineZ)
SUMAMT> 645746.00
CNT> 4
MXDT> 2012-11-14 15:56:56

BUT 当我使用 MAX(IFNULL(LSUBDT,(CURDATE() - INTERVAL 9999 DAY)))AS MXDT 它让我回复 MXDT> 323031322d31312d32332030353a30323a3037

为什么?我不能用它在使用strtotime时在php中进行比较

1)。 sql MAX()有什么问题?
2)。 MAX()旁边的任何替代方案?我想得到最新的DATETIME 3)。可以在某些地方有些如何将PHP转换回2012-11-14 15:56:56格式然后我继续在php中比较以后

顺便说一句
4)。 MXDT的返回结果> 2012-11-14 15:56:56也不是正确的数据库中的最新日期时间是2012-11-24 5:36:25,如果我删除总和和计数然后它正确地返回我。

感谢

1 个答案:

答案 0 :(得分:0)

试试这个:

SELECT SUM(SUMAMT)AS SUMAMT, SUM(CNT)AS CNT, MAX(MXDT) AS MXDT 
from (SELECT SUM(LAMT)AS SUMAMT, COUNT(LAMT)AS CNT, 
             IFNULL(LSUBDT,(CURDATE()-INTERVAL 9999 DAY)) AS MXDT 
      FROM (SELECT LAMT, LSUBDT FROM product1 
            WHERE LSUBBY IN (12,15,17,13,14,16) AND RECST=1 ORDER BY LSUBDT DESC 
     ) AS A GROUP BY LSUBDT
) AS B