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问题