当前位置:数据库 > Oracle >>

oracle 只根据年份(如2011)查询每月统计数据

补充:我需要只根据年份查询每月统计数据, 如 select to_char(时间,'yyyy-mm') as 每月时间, sum(统计数据) from 测试表 where 时间= time group by 每月时间 注意只有一个传入参数 time ,比如time值 为 2011/7/1 18:42:43 就查询出2011年第一天到最后一天的数据,不管time 的 月份 日期 为多少 就只查询该年份第一天到最后一天的数据 求解决方法~~~~~
答案:select to_char(时间,'yyyy-mm') as 每月时间, sum(统计数据)  from 测试表 where to_char(时间),'YYYY-MM-DD')like '2011%'  group by to_char(时间,'yyyy-mm')
其他:select to_char(时间,'yyyy-mm') as 每月时间, sum(统计数据)  from 测试表 
    where to_char(时间,'YYYY')= to_char(time,'YYYY') group by 每月时间 where  TRUNC( 时间, 'YYYY' )  =  TRUNC( time , 'YYYY' ) 不知道你的时间和参数time分别是什么类型的,只能暂时考虑为vchar型的。
select 
to_char(时间,'yyyy-mm') as 每月时间
, sum(统计数据)
from 测试表
where substr(to_char(to_date('2011/7','YYYY/MM'),'YYYY/MM/DD'),0,4) = substr(to_char(to_timestamp('2011/7/1 18:42:43','YYYY/MM/DD hh24:mi:ss'),'YYYY/MM/DD hh24:mi:ss'),0,4)
group by to_char(时间,'yyyy-mm')
-----下面的这个假设时间是date型的,参数time是timestamp型
select 
to_char(时间,'yyyy-mm') as 每月时间
, sum(统计数据)
from 测试表
where substr(to_char(时间,'yyyy-mm'),0,4) = substr(to_char(time,'YYYY/MM/DD hh24:mi:ss'),0,4)
group by to_char(时间,'yyyy-mm') 

上一个:oracle指定数据库的sql语句
下一个:oracle数据库的ora-01919问题

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,