繁体   English   中英

逐月排序

[英]sorting month-year wise

我有一些具有按月数据的条目

喜欢

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月的每月数据。有人可以为此建议一些代码吗?

您应该在STR_TO_DATE(L11_data, '%m-%Y') L11_data ,假设L11_data已经采用“ 2009年5月”的格式。 如果L11_data是日期或日期时间字段,则应仅按该字段排序。

编辑:对不起,“ July”格式应为%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

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

如果您将数据保存在精确键入的字段中,则选择和排序将更加容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM