应用场景:

 从前台传来一个时间段:开始日期 start (如2012-11-05) , 结束时间  end(如2012-11-15), 从数据库查询 从日期  start  到 日期end 之间所有符合条件的数据集合,返回一个  List 对象

例如:

/*** 返回指定 观测站某时间段内每天8时的水位集合*/@Overridepublic List getDataByStartAndEndTime(String id, String start, String end) {String time = "08";String startDate = start + " " + time +":00:00";String endDate = end + " " + time +":00:00";String sql = "select stcd, to_char(tm, 'YYYY-MM-DD') tm, rz from st_rsvr_r  where stcd = ? and tm <= to_date( ? , 'YYYY-MM-DD hh24:mi:ss') and tm > to_date( ? , 'YYYY-MM-DD hh24:mi:ss') and to_char(tm, 'hh24')= ? order by tm ";return getJdbcTemplate().queryForList(sql, id, startDate, endDate, time);}

返回List之后,需要将日期start 到end 之间的某个日期与数据库查询出来的List对象中某个日期进行匹配,new一个数组,数组值依次表示  日期start到end  每日8时的水位值,如果数据库中没有某个日期的记录,那么这天的水位值存为0,方法如下 :(其中startdata1 对应 结束日期 end ,  enddata 对应 开始日期 start)

/*** 返回带参某水库水位数据源* @param startdata1  开始日期 * @param enddata  结束日期  * @param num  * @return*/private double[] getWaterLineHelp(String id, String startdata1, String enddata, int num) {Map<String, String> resultMap = new HashMap<String, String>();double[] getd = new double[num];List<Map> list = stRsvrRDao.getDataByStartAndEndTime(id, startdata1, enddata);if (null != list && !list.isEmpty()) {for(int i=0; i<list.size(); i++){Map map = list.get(i);resultMap.put(map.get("TM") + "", map.get("RZ") + "");}}if (null != getd && getd.length > 0) {for (int i = 0; i < getd.length; i++) {String key = DateUtils.getNextDay2(enddata, i+1 + "");if (resultMap.containsKey(key)) {getd[i] = Double.parseDouble(resultMap.get(key));} else {getd[i] = 0;}}}return getd;}

如上代码,遍历List 用Map对象map接收,然后将这个map对象中的日期和水位存入另一个Map对象resultMap中,  然后从开始日期 enddata依次延后 ,跟resultMap对象中的key值匹配,如果相等,就表示这个日期存有水位值,赋值就好;如果没有匹配上,表示数据库没有这个日期的记录,赋值为0;
效果如下:





												

有关日期参数匹配数据库数据的方法相关推荐

  1. python如何导出数据库数据库_python导出数据库数据的方法

    python导出数据库数据的方法 发布时间:2020-06-26 14:09:43 来源:亿速云 阅读:138 这篇文章运用简单易懂的例子给大家介绍python导出数据库数据的方法,代码非常详细,感兴 ...

  2. GEO数据库数据下载方法总结

    GEO数据下载 GEO是生信分析经常用到的数据库.经常需要从中获取表达矩阵,平台信息,meta信息等,本博文总结了几种下载GEO数据的方法,各有优劣,实际应用过程中自行选择适合自己的. 方法一:直接从 ...

  3. python怎么更新数据库_在Python的Django框架中更新数据库数据的方法

    先使用一些关键参数创建对象实例,如下: >>> p = Publisher(name='Apress', ... address='2855 Telegraph Ave.', ... ...

  4. mysql数据库数据迁移方法

    说明:这里不讨论命令行还有通过navicat等工具的做法,这里只讨论在mysql坏掉(不能启动)的情况下,怎么办. 方法: a) 先来看mysql数据库文件的情况: mysql坏掉了,不管是linux ...

  5. oracle数据库mgmt,Oracle 12cRAC移动MGMTDB数据库数据文件方法-Oracle

    在之前的Blog里介绍了Oracle12c RAC 中的MGMTDB的概念,参考: Oracle 12cRAC MGMTDB 说明 /database/201412/359252.html 而在默认情 ...

  6. JAVA通过导入一定格式的excel对数据库数据进行模糊筛选

    JAVA通过导入一定格式的excel对数据库数据进行模糊筛选 在工作中遇到一个需求是通过导入固定格式的excel来和数据库数据进行模糊匹配,符合条件的可以通过,不符合条件的就不通过,解决代码: 首先要 ...

  7. php如何查询数据库,如何在php中查询mysql数据库数据

    如何在php中查询mysql数据库数据 发布时间:2020-07-21 09:23:55 来源:亿速云 阅读:81 作者:Leah 本篇文章给大家分享的是有关如何在php中查询mysql数据库数据,小 ...

  8. php查询mysql数据库_php中如何查询mysql数据库数据?

    php中查询mysql数据库数据的方法:首先用navicat新建数据库并建表:然后添加数据并与数据库连接:接着用[mysql_select_db]函数选择要查询的数据库:最后将文件在浏览器中打开即可. ...

  9. php怎么对数据库修改,php怎么修改数据库数据

    php修改数据库数据的方法:可以通过mysqli_query函数并结合update语句来修改数据库数据,如[mysqli_query($con,"UPDATE Persons SET Age ...

最新文章

  1. 函数返回引用什么意思_【20200917】编程入门第七课,函数(function)
  2. java枚举类型转换为Struts2的select的数据
  3. win10升级win11的步骤 win10升级Windows11的方法
  4. 异速联未获取服务器信息,异速联客户端连接服务器的方法
  5. html5广告拦截器识别代码做提示(本站内容无法显示)
  6. 多套 企业/工厂/超市/仓库库存管理系统源码 工具软件程序源代码
  7. netty4.1 “File does not contain valid private key” 解决方法
  8. 飞轮效应中的复利:相信时间的力量
  9. Git和GitHub的关系和区别
  10. TCP/UDP端口列表
  11. 天线越大越好吗_路由器的天线是不是越多越好?告知你真实答案,很多人都买错了...
  12. 新机器部署linux系统(非虚拟机)
  13. python数据可视化之美——基础
  14. 称为超级计算机,哪台机器被称为世界上最快的超级计算机?
  15. 友勤协同Oracle P6项目管理软件,助力江苏爱康能源工程交付高绩效项目。
  16. 3D人脸重建:从基础知识到识别/重建方法!
  17. 物联网打破传统行业的枷锁,加速传统行业智能化!
  18. Linux病毒扫描工具ClamAV(Clam AntiVirus)安装使用
  19. TEC温控器 半导体制冷片驱动模块 高精度温度控制器
  20. 数值计算大作业:线性方程组求解(LU分解与Chloesky分解程序在Matlab与C的实现)

热门文章

  1. 记录AOSP源码编译刷机(pixel 4a)
  2. 福禄克DSX2-8000 DSX2-5000 业以太网连接器集锦DSX-CHA021S
  3. elasticsearch7.9安装[单集群单节点、开启权限认证]
  4. 分段函数是不是一定初等函数_分段函数是不是初等函数,那这个呢?
  5. sql string转为日期_SQL之变身Excel(二)
  6. 滚雪球学 Python 第三轮,Python Web 之 Django 的世界
  7. [转] Real-World Concurrency
  8. 【电机/控制理论】DTC(Direct Torque Control)直接转矩控制
  9. 2021年安全生产模拟考试(建筑起重机司机-塔式起重机模拟考试题库)安考星
  10. 报告:Facebook的Calibra数字钱包将无法在其所有市场上销售