当前位置: 首页 > 知识库问答 >
问题:

获取当前年份的年份

冀俊良
2023-03-14
SELECT DISTINCT(toda) toda, count(DISTINCT toda) as numusers 
FROM tbl_complains WHERE YEAR(dates)= YEAR(NOW()) 
GROUP BY toda ORDER BY toda

我试图只得到今年的数据,但我的“where子句”似乎有问题。但当我在where子句中输入特定年份时,它就起作用了。除了where子句之外,所有的东西都在工作。

我希望你们能帮我。

共有1个答案

赵骏奇
2023-03-14

在一个领域的什么地方计算一些东西是一个非常糟糕的主意。MySQL必须在每一行上计算该值,以查看是否使用该行作为结果。这提供了一个完整的表扫描,并且可能会很慢

更好地使用

SELECT DISTINCT(toda) toda, count(DISTINCT toda) as numusers 
FROM tbl_complains 
WHERE dates BETWEEN DATE_FORMAT(NOW() ,'%Y-01-01') 
                AND DATE_FORMAT(NOW() ,'%Y-12-31'))
GROUP BY toda ORDER BY toda;

所以MySQL只能计算一次日期,如果有索引,也可以使用索引

 类似资料:
  • 问题内容: 我有要尝试生成报告的数据,并且正在研究“年初至今”报告。我在表中的列的格式设置为日期时间。我正在尝试运行select语句以获取date =今年的所有结果。 例如: 有没有完成此目的的简便方法? 问题答案: 是的,实际上非常简单:

  • 问题内容: 我需要将Java中的当前年份确定为整数。我可以使用,但已弃用。 问题答案: 不知道这是否符合不设置新日历的标准?(为什么反对这样做?)

  • 在calendarview中,起初我可以设置日期,但当我单击将日历更改为上个月或下个月的两个按钮时,我无法获得哪个月和哪一年。更重要的是,Calendarview支持滑动到前一个月或下个月,但我无法获得现在显示日历的年月信息。我怎么能看到(现在显示)日历的年月信息?? 在此处输入图像描述 在此处输入图像描述

  • 在点击日期选择器标题左右的“下一个”和“上一个”链接后,我试图获得“显示”的月份和年份。 目前我正在使用获取月份: 但它只返回当前月份,而不是单击“下一步”或“上一步”后显示的月份。 编辑 我在函数中添加了带有日期选择器的选项 但这只是说明了当前日期。 再次编辑 上述工作只需要设置一个延迟:]

  • 我想得到两年之间的所有月份,以及两年之间的所有月份,他们的所有数据都将相加,以得到每年的销售额。 以下是我的表格截图: 截图 例如,我想获得2016年至2017年的年销售额,我需要将名称中包含2016年和2017年的所有列相加,以获得年销售额。我知道这张表不是正常的或正常的。但是这张桌子不是我的。 以下是获取两个日期之间月份的示例代码: