明智地分类月份

时间:2009-06-09 12:07:09

标签: php mysql

我有一些有月度数据的条目

May-2009
April-2009
March-2009
-
-
-
-
-
-
January-2000

现在我想通过mysql查询每月对这些数据进行排序。

$q=mysql_query(SELECT id,action,
     L1_data,
     L2_data,
     L3_data,
     L11_data 
  from table 
  where action='feild name' 
  ORDER BY DATE_FORMAT(L11_data,'%m-%Y') DESC);

while($r=mysql_fetch_array($q))
{
-------
}

这里L11_data是具有所有月份值的那个(例如2009年5月等)

我正在使用此查询,但它没有任何帮助。 我想要的是从2009年5月到2000年1月按月显示数据 任何人都可以为此建议一些代码吗?

2 个答案:

答案 0 :(得分:2)

您应该按STR_TO_DATE(L11_data, '%m-%Y')排序,假设L11_data已采用“May-2009”格式。如果L11_data是日期或日期时间字段,则应单独按该字段排序。

编辑抱歉,对于“七月”格式,它应该是%M而不是%m。 %m代表“07”格式。 %b为“Jul”格式。

SELECT
    id, action,
    L1_data, L2_data,
    L3_data, L11_data 
FROM table 
WHERE action = 'field name' 
ORDER BY STR_TO_DATE(L11_data, '%M-%Y') DESC

答案 1 :(得分:2)

在您的情况下,数据可能是遗留的,但在创建新系统时,您应该以适当的格式存储数据。对于MySQL中的月 - 年对,它将是日期类型。在MySQL中,日期可以在月份和日期部分中具有零值,例如“00-01-2000”将表示2000年1月。

如果您将数据保存在精确类型字段中,则选择和排序会更容易。