时间字段按月分组

做报表时遇到一个问题,根据日期字段查询一年中每月某项的统计数量,搞了有点时间才弄出来,贴出来分享一下。

1,oracle中以月分组的语句

<span style="font-size:18px;">		SELECT
			TO_NUMBER(TO_CHAR (T.BIRTH_DATE, 'mm'))getmonth,
		  COUNT (T.UUID)TOTAL
		FROM
			T_PERSON T

		GROUP BY
			TO_CHAR (T.BIRTH_DATE, 'mm') ORDER BY getmonth</span>

查询结果如下:

2,mysql中按月查询语句

select month(CreateTime) newmonth,count(uuid) total from t_user group by month(CreateTime)

查询结果如下:

oracle中不支持month方法,支持to_char().将日期字段转换为月份格式。按照年,周,季度分组也一样。

时间: 2024-11-05 19:29:31

时间字段按月分组的相关文章

按年、季度、月分组&amp;&amp;计算日期和时间的函数

Mysql 按年.季度.月分组 按月度分组: select DATE_FORMAT(i.created_at, '%Y-%m月')...................GROUP BY DATE_FORMAT(i.created_at, '%Y-%m')  按季度分组: select CONCAT(YEAR(i.created_at),'_',QUARTER(i.created_at),'Q')....................GROUP BY CONCAT(YEAR(i.created_

时间字段是否适合建索引

时间字段是否适合建索引 可以建立索引的:至于建立聚集索引或者是非聚集索引,那要看你这个时间字段的具体情况以及使用或变更频繁程度. 一般来说,适合建立聚集索引的要求:“既不能绝大多数都相同,又不能只有极少数相同”的规则. 先说说一个误区:有人认为:只要建立索引就能显著提高查询速度.这个想法是很错误的.建立非聚集索引,确实,一般情况下可以提高速度,但是一般并不会达到你想要的速度.只有在适当的列建立适当的(聚集)索引,才能达到满意的效果. 下面的表总结了何时使用聚集索引或非聚集索引(很重要). 动作描

2014年10月MVP开始申请了~[截止时间:7月10日]

51CTO与微软中国合作长期为用户提供申请"微软最有价值专家"的平台希望有兴趣.资历的朋友以及正在朝这个方向努力的朋友能够积极参与只要您想参与我们将为您向微软推荐 微软最有价值专家MVP一年评选4次分别为每年的1月.4月.7月.10月.2014年10月的MVP申请截止时间是2014年7月10日. 申请MVP的午饭请下载2014年10月MVP申请表填好后发送到[email protected].我们会在每次MVP申请开始时把用户提交的申请表格推荐到微软中国相关部门 [注意事项]1.51C

mysql 时间字段的函数 timestamp

Mysql 里格式 时间字段的函数 DATE_FORMAT unix_timestamp - 墨墨修行的日志 - 网易博客http://jjuanxi.blog.163.com/blog/static/175274197201121011310826/

MySQL基于时间字段进行分区的方案总结

MySQL支持的分区类型一共有四种:RANGE,LIST,HASH,KEY.其中,RANGE又可分为原生RANGE和RANGE COLUMNS,LIST分为原生LIST和LIST COLUMNS,HASH分为原生HASH和LINEAR HASH,KEY包含原生KEY和LINEAR HASH.关于这些分区之间的差别,改日另写文章进行阐述. 最近,碰到一个需求,要对表的时间字段(类型:datetime)基于天进行分区.于是遍历MySQL官方文档分区章节,总结如下: 实现方式 主要是以下几种: 1.

MySQL时间字段究竟使用INT还是DateTime

今天解析DEDECMS时发现deder的MYSQL时间字段,都是用 `senddata` int(10) unsigned NOT NULL DEFAULT '0'; 随后又在网上找到这篇文章,看来如果时间字段有参与运算,用int更好,一来检索时不用在字段上转换运算,直接用于时间比较!二来如下所述效率也更高. 归根结底:用int来代替data类型,更高效. 环境: Windows XP PHP Version 5.2.9 MySQL Server 5.1 第一步.创建一个表date_test(非

解决SQL Server 2005数据库中datetime时间字段在前端显示时分秒的问题

SQL Server 2005中时间类型datetime的格式是"年月日时分秒",直接读出来该字段,为了不让它在前端显示"时分秒"若是显示在dataGridView中,可以修改控件的某一列格式,如: dataGridView1.Columns[10].DefaultCellStyle.Format = "yyyy-MM-dd"; 但是要在listview控件中的话,就有点困难了,貌似没有类似的属性,这样的话,考虑从数据源入手. 1.获取当前年月日

每天进步一点点之SQL 获取表中某个时间字段离当前时间最近的几条

实际中用到的SQL: select * from (select top 3 Id, case when startSignup>GETDATE() then '敬请期待' when (startSignup<GETDATE() and  endsignUp>=getdate()) then '正在报名'  when (StartDate<GETDATE() and EndDate>=GETDATE())or (StartDate<GETDATE() and EndDa

MySQL 创建表时,设置时间字段自己主动插入当前时间

MySQL 创建表时,设置时间字段自己主动插入当前时间 DROP TABLE IF EXISTS `CONTENT`; CREATE TABLE `CONTENT` ( `ID` char(20) NOT NULL, `CURRENT_TIME` timestamp not null default current_timestamp, PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;