java实现oracle的months_between函数
最近在使用H2内存数据库,在将oracle中的SQL转换为H2中的SQL时,有些函数H2不存在,幸好H2支持自定义函数 ,于是自己使用日历写了下面这个仿oracle的months-between函数:
public static double monthsBetween(Date start,Date end){Calendar startCalendar = Calendar.getInstance();startCalendar.setTime(start);Calendar endtCalendar = Calendar.getInstance();endtCalendar.setTime(end);int startYear = startCalendar.get(Calendar.YEAR);int endYear = endtCalendar.get(Calendar.YEAR);int startMonth = startCalendar.get(Calendar.MONTH);int endMonth = endtCalendar.get(Calendar.MONTH);int startDay = startCalendar.get(Calendar.DATE);int endDay = endtCalendar.get(Calendar.DATE);int startHour =startCalendar.get(Calendar.HOUR_OF_DAY);int startMinute = startCalendar.get(Calendar.MINUTE);int startSecond = startCalendar.get(Calendar.SECOND);int endHour =endtCalendar.get(Calendar.HOUR_OF_DAY);int endMinute = endtCalendar.get(Calendar.MINUTE);int endSecond = endtCalendar.get(Calendar.SECOND);double result = (startYear*12+startMonth) - (endYear*12+endMonth);int countDay = ((startDay * 24) - (endDay * 24))/24;double countHourDay = (startHour - endHour)/24d;double countMinuteDay = (startMinute - endMinute)/(60d*24d);double countSecondDay = (startSecond - endSecond)/(60d*24d*60d);double factor = (1d/31d);result += countDay * factor;result += countHourDay * factor;result += countMinuteDay * factor;result += countSecondDay * factor;return result; }
java实现oracle的months_between函数相关推荐
- Oracle中MONTHS_BETWEEN函数的使用
ORACLE中函数MONTHS_BETWEEN的使用 格式:MONTHS_BETWEEN(DATE1,DATE2)MONTHS_BETWEEN函数返回两个日期之间的月份数. SQL> selec ...
- 用java调用oracle存储过程和函数
创建测试用表: CREATE TABLE USER ( I_ID VARCHAR(50) NOT NULL, I_NAME VARCHAR(50) NOT NULL ); 一:无返回值 ...
- Oracle数据库中调用Java类开发存储过程、函数的方法
Oracle数据库中调用Java类开发存储过程.函数的方法 时间:2014年12月24日 浏览:5538次 oracle数据库的开发非常灵活,不仅支持最基本的SQL,而且还提供了独有的PL/SQL, ...
- java oracle 连接字符串函数_通过shell来比较oracle和java中的字符串使用
这些准备工作齐了之后,我们来从Java中的字符串使用入手来比较一下oracle中对于字符串的处理. java中有如下的一些函数,我会依次来做比较. public char charAt(int ind ...
- java调用oracle的函数,从Java调用Oracle函数
我有以下功能规格: FUNCTION FUNC_GET_SOMETHING_FROM_DATABASE ( IN_parameter1 IN VARCHAR2, IN_parameter2 IN VA ...
- java中instr函数,Oracle中instr函数使用方法
INSTR (源字符串, 目标字符串, 起始位置, 匹配序号) 在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置.只检索一次,就是说从字符的开始到字符的结尾就结束. 语 ...
- Oracle 内置函数
F.1字符函数--返回字符值 这些函数全都接收的是字符族类型的参数(CHR除外)并且返回字符值.除了特别说明的之外,这些函数大部分返回VARCHAR2类型的数值.字符函数的返回类型所受的限制和基本数据 ...
- Oracle的sql 函数
Oracle的SQL函数 Oracle的SQL函数分为单行函数和多行函数.单行函数只对单条记录有效,多行函数对多条记录有效. 单行函数包括,字符.数字.日期.转换和普通函数. 字符函数举例: ?全小写 ...
- [转]ORACLE日期时间函数大全
本文转自:http://www.cnblogs.com/chuncn/archive/2009/04/29/1381282.html ORACLE日期时间函数大全 TO_DATE格式(以时间:2007 ...
最新文章
- 震撼!17 个改变世界的数学公式...
- 详解XMind各种上传分享分类
- rdb和aof优势劣势
- tableview的reloadData 产生的问题
- 计算机英文版个人简历发文,计算机个人简历英文_英文简历.doc
- C#设计模式之17-中介者模式
- 如何在Postgresql中使用模糊字符串匹配
- win7充当无线路由器
- java objective-c_Objective-C基础教程学习笔记(附录)从Java转向Objective-C
- 浏览器的加载顺序与页面性能优化
- 添加文件夹语音_微信语音导出方法大全,微信群语音转发只需3步
- PXE+kickstart 无人值守安装CentOS 6
- android 按键上报流程,input子系统详解,按键如何上报
- android flurry 教程,android一种统计工具Flurry的使用说明
- 记一次瞬时网络挂起和XMLHttpRequest: 网络错误 0x2eff
- mac 解压rar文件
- 昨日种种皆成今我,切莫思量切莫哀
- 《保卫萝卜》分析续——地图构成
- 六级考试-考前最后一背
- 【CSDN】文章撰写方法
热门文章
- KISSY基础篇乄KISSY之Anim(1)
- Oulipo(欧力波)(经典kmp模板题) HDU-1686
- “数据”到底是资产还是负债?
- Windows10连接Google手机,短信照片同步折腾记录
- 机顶盒ttl无法输入_哪位大神帮帮忙,B860 AV1.1 TTL 无法输入命令
- python编程计算器_Python3-用Python编写计算器的3种方法
- Codeforces Round #652 div2 总结 端午节前小结
- 输入两个正整数,求其最大公约数和最小公倍数。
- agc001E BBQ Hard
- 完全用 GNU/Linux 工作(转)