大侠们:

我使用sql语句和后台程序代码统计航班数量,如果依据大于等于1的值做统计,他们两个得出的结果是一样的;如果依据0做统计,结果是不一样,谁知道怎么回事(0不是除数)?先谢谢各位了。。。

问题是:比如通过 sql语句统计的结果是60个,那么统计后台程序统计的就是67个,总之,如果依据0来统计,后台程序的结果就比sql语句的结果多几条数据。

我把统计使用的sql语句和核心代码都帖子下面了,如果有不明白的可以留言告诉我

我觉得问题出在时间的换算上

重要的代码是:

long diff = processTime.getTime()

- flight.getSTD().getTime();

int hoursDelayed = (int) (diff / (1000*60*60));

//根据延误的时间长短,与响应的条件进行比对

if (hoursDelayed >= ) {

count++;

}

processTime,它的值为系统当前时间

params.get("FDDT").getThreshold(),它的值为0

该处是统计数量的sql语句:

--数量统计是离港航班 延误 atd为null 过滤掉共享 当日航班 还有一个条件是:拿当前告警处理时间减去std,然后与fddt的时间进行比较

--下面是按照业务逻辑,书写的语句

select count(e.flight_no),e.operation_date,e.flight_no,

sysdate,e.std,

floor((to_date(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') - to_date(to_char(e.STD,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss'))*24) 小时,

floor((to_date(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') - to_date(to_char(e.STD,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss'))*24*60) 分钟,

(to_date(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') - to_date(to_char(e.STD,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss'))*24

from epms_flight_info e

left join v_epms_flightinfo v

on e.operation_date=v.OPERATION_DATE and e.flight_no=v.FLIGHT_NO and e.aord=v.AORD and e.repeat_count=v.REPEAT_COUNT

where e.Recent_Abnormal_Status='D'

and e.ATD is null

AND e.AORD='D'

and v.CODE_SHARE1 is null

and e.std < to_date(to_char(sysdate+1, 'YYYYMMDD') || '040000', 'YYYYMMDDHH24MISS')

and

floor((to_date(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') -

to_date(to_char(e.std,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss'))*24) >= 0

group by e.operation_date, e.flight_no, sysdate, e.std,

floor((to_date(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') -

to_date(to_char(e.STD,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss'))*24),

floor((to_date(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') -

to_date(to_char(e.STD,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss'))*24*60),

(to_date(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') -

to_date(to_char(e.STD,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss'))*24;

该处是统计数量的后台代码:

for (FlightInformation flight : Global.allCacheFlight) {

if (flight.getAbnormalStatus() == null)

continue;

if (flight.getArriveOrDeparture().equals("D")

&& flight.getAbnormalStatus().equals("D")

&& flight.getATD() == null) {

//依次判断航班是否延误

long diff = processTime.getTime()

- flight.getSTD().getTime();

int hoursDelayed = (int) (diff / (1000*60*60));

//根据延误的时间长短,与响应的条件进行比对

if (hoursDelayed >= params.get("FDDT").getThreshold()) {

count++;

}

}

}

java统计大于0的个数_java中0的问题(依据0统计数量时出错)相关推荐

  1. 以下程序从读入的整数数据中,统计大于零的整数个数和小于零的整数个数。用输入零来结束输入,程序中用i统计大于零的个数,用变量j统计小于零的整数。

    标题以下程序从读入的整数数据中,统计大于零的整数个数和小于零的整数个数.用输入零来结束输入,程序中用i统计大于零的个数,用变量j统计小于零的整数. 在这里插入代码片 #include<stdio ...

  2. java被3整除的数_java中计算1-200以内可以被3整除的数,输出这些数并统计一共有多少个....

    public class c {public static void main(String[] args) {for(int i=10;i<100;i++){if(i%7==0&&am ...

  3. java小数点后保留7位_Java中如何保留小数点后两位

    java中四舍五入后并保留两位小数的方法(以double为例) String.format打印 数字格式化说明的格式: %[argument number][flags][width][.precis ...

  4. java什么是栈和堆_JAVA中的栈和堆

    JAVA在程序运行时,在内存中划分5片空间进行数据的存储.分别是:1:寄存器.2:本地方法区.3:方法区.4:栈.5:堆. 基本,栈stack和堆heap这两个概念很重要,不了解清楚,后面就不用学了. ...

  5. java怎么设置多个输入_Java中从键盘输入多个整数的方法

    Java中从键盘输入多个整数的方法 发布于 2020-4-2| 复制链接 分享一篇关于Java中从键盘输入多个整数的方法,具有很好的参考价值,希望对大家有所帮助.一起跟随小妖过来看看吧 例题:求数列的 ...

  6. java怎样将日期本土化_Java中的日期操作

    在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception { SimpleDateFormat sdf = n ...

  7. java的tey语句return了_java中try-catch-finally中的return语句

    在try-catch-finally语句中使用return语句遇到了一些疑问 代码一: static intintc(){int x =0;try{ x=1;returnx; }finally{ x= ...

  8. java的异常有哪些类_Java中的异常类型有哪些

    1. java.lang.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对 ...

  9. java 网络通讯用什么流_Java中打印流,网络通信协议,TCP通信的基础介绍

    1-1.打印流 java.io.PrintStream:打印流 PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式. PrintStream特点: 1).只负责数据 ...

最新文章

  1. JCheckBox使用示例
  2. PowerDesigner生成注释以及对应数据库的sql语句
  3. CF1039D-You Are Given a Tree【根号分治,贪心】
  4. 加版S3(I747M)的4.4.2版本,可root
  5. 基于Session的认证方式_实现会话功能_Spring Security OAuth2.0认证授权---springcloud工作笔记117
  6. 助您写出优雅的Java代码七点建议
  7. react中使用antd按需加载(第一部)
  8. 使用bintray-release工具上传gradle项目至bintray.com
  9. DBeaver mysql驱动连接问题
  10. 基于python的猜大小游戏
  11. 遗传算法适应度函数的计算原理
  12. for horner_霍纳法则(Horner Rule)
  13. 罗尔(Rolle)、拉格朗日(Lagrange)和柯西(Cauchy)三大微分中值定理的定义
  14. ARM芯片内部堆栈的理解及MAP文件的查看
  15. RK键盘出现上下左右键对应890←输出,Del键输出q,q键有删除功能解决
  16. Path环境变量是什么?有什么用?怎么工作?JDK,JRE,JVM,集成开发工具是什么?有什么用?怎么工作?JDK安装包文件结构?有必要设置Path环境变量?Eclipse和IDEA开发工具的运作
  17. radio input 不可以更改的状态(disabled readonly)
  18. LUNA16图片提取
  19. 终极音频增强软件 SRS Audio Sandbox 特别版
  20. 【Hi3519A】测试华为M2221-QL智能摄像头

热门文章

  1. linux系统资源监控
  2. Docker 快速上手学习入门教程
  3. java-第十一章-类的无参方法-计算器运算
  4. 如何成为月入过万的斜杠青年
  5. vim中权限不足时不用退出而强制保存
  6. PostgreSQL备份之手工备份(Low Level API)
  7. C++之头文件与源文件
  8. php null运算符,PHP7 Null合并运算符
  9. harmonyos开发者邀请码,HarmonyOS 2.0鸿蒙第二期开发者Beta公测申请指南
  10. 华为harmonyos和ios,华为EMUI正式更名为HarmonyOS,看来华为真的是孤注一掷了