Oracle时间处理和报表分时段统计
来源:互联网 发布:信用视界 知乎 编辑:程序博客网 时间:2024/05/29 16:06
以下是在报表工具中的sql的写法:
1、之前做的报表,有一张需要展现为分时段统计,就是8-9点,9-10点各项的数据为多少。
2、这里需要在查出各类数据的同时也把数据里的时间查询出来,当然要处理一下,时间要做两步处理,一个把时间转换成日期,一个把时间转换成小时,最后所有的数据按日期和小时分组。
3、关于时间格式转换成日期和小时,需要用到to_char()函数,to_char(time, 'yyyy-mm-dd')可以把时间转成日期,to_char(time, 'hh24')把时间转换成小时。但是这里的time要求是date类型。
4、关于时间,我们存储为字符串形式,这样就不能直接转换,而且oracle的时间格式和java的不一样,
java表示年月日时分秒:yyyy-MM-dd HH:mm:ss,如果是12小时制,则为:yyyy-MM-dd hh:mm:ss
oracle表示年月日时分秒:yyyy-MM-dd hh24:mi:ss
5、最终,时间的两步处理为:
转成日期:to_char(TO_DATE('2017-08-01 00:00:00', 'yyyy-MM-dd hh24:mi:ss'),'yyyy-mm-dd')
转成小时:to_char(TO_DATE('2017-08-01 00:00:00', 'yyyy-MM-dd hh24:mi:ss'),'hh24')
下面是java中的时间处理:
1、获取当前时间 Date now = new Date();
2、时间字符串转Date(要处理异常) :
String time = "2017-10-31 19:06:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //MM月,mm分钟
Date date = sdf.parse(time);
3、Date转字符串
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String createdate = sdf.format(date);
下面是oracle秒转时分秒函数:
CREATE OR REPLACE FUNCTION FormatTime
(
inTime NUMBER
)RETURN VARCHAR2
AS
v_Time NUMBER(10);
tValue NUMBER(4);
tStrTime VARCHAR2(10);
BEGIN
-- RETURN TO_CHAR(ROUND(inTime, 1));
IF inTime > 10000*3600 THEN
tStrTime := '9999:59:59';
RETURN tStrTime;
ELSIF inTime <= 0 THEN
tStrTime := '0:00:00';
RETURN tStrTime;
END IF;
v_Time := inTime;
tStrTime := to_char(floor(v_Time/3600))||':';
tValue := floor(MOD(v_Time,3600)/60);
IF tValue<10 THEN
tStrTime := tStrTime ||'0'||to_char(tValue)||':';
ELSE
tStrTime := tStrTime ||to_char(tValue)||':';
END IF;
tValue := MOD(v_Time,60);
IF tValue<10 THEN
tStrTime := tStrTime ||'0'||to_char(tValue);
ELSE
tStrTime := tStrTime ||to_char(tValue);
END IF;
RETURN tStrTime;
END FormatTime;
- Oracle时间处理和报表分时段统计
- SQL分时段统计
- #hive#分时段统计消耗
- mysql 时间范围内分时段分组排序
- 查询Oracle数据库分时段的健康状况---脚本
- Oracle 报表统计SQL
- 分时段个性化推荐
- 分时段MFP
- 热水锅炉控制系统 分时段控制水温和水位
- Oracle中时间处理及分时间段统计
- Oracle中时间处理及分时间段统计
- PHP实现分时段计费
- oracle的日期和时间的处理
- Oracle时间处理函数和算法
- 统计报表误区和解决办法
- oracle临时段的处理
- 【转载】Oracle 大字段处理
- Oracle 大字段类型处理
- 117.排列的个数
- 116.连续和的平方数
- 115.变量交换
- 114.干支记年法
- button 的拖动
- Oracle时间处理和报表分时段统计
- CSP开发基础--CSP入门简介
- 8.3 G
- 113.公交车标价
- Android OpenGL透视投影
- SpringMVC前传(3)
- 112.n进制小数
- c# main函数参数
- 一、JDK线程池概要