表 BOXENERGY
ID BOXID DATE ENERGY
1 1 2010-01-01 5.6
2 1 2010-01-02 5.7
3 1 2010-01-03 5.5
4 1 2010-01-04 5.3
.................................365 1 2010-12-31 5.3
366 1 2011-01-01 5.4
.................................xxx 2 2010-01-01 5.8
xxx 2 2010-01-02 5.7
xxx 2 2010-01-03 5.8
ID主键 有N个BOXID 对应每天的能耗数据
现要按年 、季度 、月 、星期 求 ENERGY 的和N可以是全部 单个 也可以是一部分用了substr 可以求年 月 但季度 星期不好弄用什么方法能统一一点呢?
ID BOXID DATE ENERGY
1 1 2010-01-01 5.6
2 1 2010-01-02 5.7
3 1 2010-01-03 5.5
4 1 2010-01-04 5.3
.................................365 1 2010-12-31 5.3
366 1 2011-01-01 5.4
.................................xxx 2 2010-01-01 5.8
xxx 2 2010-01-02 5.7
xxx 2 2010-01-03 5.8
ID主键 有N个BOXID 对应每天的能耗数据
现要按年 、季度 、月 、星期 求 ENERGY 的和N可以是全部 单个 也可以是一部分用了substr 可以求年 月 但季度 星期不好弄用什么方法能统一一点呢?
解决方案 »
- 执行导入数据库语句报错误
- Oracel能够把AL32UTF8编码的繁体字转换为Big5编码么?繁体站点注册的会员发送繁体电子邮件杂志,会员姓名是乱码,这个问题怎么解决?
- 关于触发器相关的选项和参数的问题?
- 急招ORACLE高手,优化人员!
- 急!!!无法为表空间MOF中的段创建 INITIAL 区
- 一个sql语句问题,等待解决
- 请问sqlldr怎么导入含有回车符的数据?(在线等)
- 使用exp导出数据出错,请帮忙看一下!
- ORA-01033: ORACLE initialization or shutdown in progress在9i下的解决方案
- 问题
- 帮忙看看 怎么出错了
- 查看运行过程中的更新程序
sys@SZTYORA> select trunc(sysdate,'Q') from dual;TRUNC(SYSDATE,'Q')
-------------------
2011-01-01 00:00:00
sys@SZTYORA> select trunc(sysdate,'yyyy') from dual;TRUNC(SYSDATE,'Q')
-------------------
2011-01-01 00:00:00-- 当前月的第一天:
select trunc(sysdate,'mm') from dual;-- 当前周的第一天
sys@SZTYORA> select trunc(sysdate,'DAY') from dual;TRUNC(SYSDATE,'DAY'
-------------------
2011-02-27 00:00:00
SELECT BOXID, trunc(date,'Q') as Qu, sum(energy) as energy
FROM boxenergy
group by boxid, trunc(date,'Q');
SELECT BOXID, trunc(to_date(date_column,'yyyy-mm-dd),'Q') as Qu, sum(energy) as energy
FROM boxenergy
group by boxid, trunc(to_date(date_column,'yyyy-mm-dd),'Q');
SELECT BOXID, trunc(to_date(date_column,'yyyy-mm-dd'),'Q') as Qu, sum(energy) as energy FROM boxenergy group by boxid, trunc(to_date(date_column,'yyyy-mm-dd'),'Q');
关键是q 不是qu
不是有date类型嘛,给以后的工作造成了不便啊
thank you`
select to_char(sysdate,'day') from dual;TO_CHAR(SYSDA
-------------
thursday
--当前时间为年的第几周 (注意当前年的第一天为周几)
select to_char(sysdate,'ww') from dual;--当前时间为月的第几周 (注意当前月的第一天为周几)
select to_char(sysdate,'w') from dual;
-------------
thursday这力统计的是上个星期天到这个星期六 为1周
我们一般是星期一到星期天
结果还是 上个星期天到这个星期六