首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按月-年排序

按月-年排序
EN

Stack Overflow用户
提问于 2009-06-09 12:07:09
回答 2查看 1.9K关注 0票数 0

我有一些包含按月数据的条目

喜欢

代码语言:javascript
复制
May-2009
April-2009
March-2009
-
-
-
-
-
-
January-2000

现在,我希望通过mysql查询每月对此数据进行排序。

代码语言:javascript
复制
$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月的数据,有人能为此建议一些代码吗?

EN

回答 2

Stack Overflow用户

发布于 2009-06-09 12:14:42

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

编辑:很抱歉,对于“七月”格式,应该是%M而不是%m。%m表示"07“格式。%b用于"Jul“格式。

代码语言:javascript
复制
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
票数 2
EN

Stack Overflow用户

发布于 2009-06-09 12:35:36

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

如果您将数据保存在精确键入的字段中,那么选择和排序就会容易得多。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/969695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档