`
stop_
  • 浏览: 49614 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

如何求得两个日期时间类型之间的天数

阅读更多

lastfhdate,orderdate是时间日期型

错误的求法:

用to_date函数

select lastfhdate,orderdate, to_date(lastfhdate,'yyyy-mm-dd') - to_date( orderdate,'yyyy-mm-dd')  from v_xc_orderdetail

结果如下:

2007-07-25 20:36:07     2007-06-28 16:59:09  -1066

结果明显不对(两个时间相差不到3个月)。

查找oracle的文档。

发现to_date的第一个参数是char,不能是 时间日期型,其中有这样一句:

Do not use the TO_DATE function with a DATE value for the char argument.。

又执行如下语句:

select  to_date(lastfhdate,'yyyy-mm-dd') , to_date( orderdate,'yyyy-mm-dd')  from v_xc_orderdetail

结果如下:

0025-07-07     0028-06-07

原来把天处理成了年份,年份的后两位成了天。

接着执行如下的语句

select to_date('0025-07-07','yyyy-mm-dd') - to_date('0028-06-07','yyyy-mm-dd') from dual

结果就 是 

-1066

正确的求法

1.两个日期时间直接相减,然后求整数

select Floor(lastFhDate - orderDate) from v_xc_orderDetail

2.用trunc函数

select trunc(lastfhdate) - trunc(orderdate) from dual

分享到:
评论

相关推荐

    年龄天数的计算(C++)

    1、问题描述   (1)输入今天的日期(年,月,日)和你的出生日期(年,月,日),计算你在这个世界已经生存了多少天。取值范围:年:1900 – 2100,月:1 – 12,日:1 – 31 ...  函数功能:计算两个日期

    C++实现两个日期间差多少天的解决方法

    计算原理是先求出每个日期距离1年1月1日的天数差值,再进一步做差即可。 代码如下:#include <stdio>struct MyDate{ int year; int month; int day;}; int GetAbsDays(MyDate x){ int i; int month_day[] = {31,...

    php判断两个日期之间相差多少个月份的方法

    通过`DateTime`对象的`diff()`方法,可以获取一个`DateInterval`对象,该对象表示两个日期之间的时间间隔,其中`y`表示年,`m`表示月,`d`表示日。这比简单地计算年月日差异要精确得多。 总结起来,在PHP中判断两个...

    c++简单习题求两个整数的最大公约数和最小公倍

    通过欧几里得算法,可以求得两个整数的最大公约数。算法基于原理:两个整数的最大公约数等于其中较小的数和两数相除余数的最大公约数。代码中用do-while循环实现,直到余数为0,此时的除数即为GCD,乘以两数之积...

    在dataframe两列日期相减并且得到具体的月数实例

    在Python中,Timedelta对象表示两个日期或时间点之间的差值。为了将这个差值转换为月数,我们需要进行一些数学计算。因为一个月的天数可能在28到31之间,所以不能简单地用天数除以30来得到月数。这里,我们采用了一...

    VB函数总表里面记载许多我们常用的VB函数

    **描述:** 计算两个日期之间的差异,返回一个整数值,如天数、小时数等。 #### DatePart **功能:** 日期部分信息。 **描述:** 返回日期中的某个部分,如年份、月份、日期等。 #### DateSerial **功能:** 数个...

    EXCEL中关于角度的输入、输出及转换计算技巧

    EXCEL 的日期系统是这样定义的:EXCEL 为每个日期定义了一个序列号,以 1900 年 1 月 1 日为 1,1900 年 1 月 2 日为 2,以此类推,而 2008 年 1 月 1 日的序列号是 39448,简而言之,任何一个日期的数值就是距 1900...

    小学数学总复习易错题PPT课件.pptx

    17. **日期和星期计算**:计算两个日期之间的天数,判断星期几。 18. **相遇问题**:根据速度比和相遇位置,推算距离和速度。 19-20. **工作量与工作效率**:利用工作效率比和工作时间,分析师傅和徒弟的工作量,...

    用C++验证身份证

    - 将求得的和模11得到一个余数。 - 根据余数查询对应的校验码数组 `{'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'}`。 - 最后一位校验码应与身份证号码中的最后一项相匹配。 - **出生日期合法性判断*...

    《公共基础知识》考点特训数学运算(2020年版)_4.docx

    要找到单位数的最大值,可以采用极端思维,设每个单位人数依次为19、20、21...,但由于题目要求人数不同,所以只能是两个单位,分别是247人和7人,满足条件,因此单位数最多为2个。 以上六题覆盖了公共基础知识考试...

    三年级下册数学经典测试题 (15).doc

    根据一周7天的规律,可以通过将天数除以7求得星期几,余数决定了从星期一开始数的天数。 2. **组合问题**: - 题目询问不同早餐搭配数量,展示了乘法原理的应用,即每种饮料可以与多种点心搭配,总数等于饮料种类...

    java50个编程题[文].pdf

    14. 计算日期顺序:输入年月日,计算该日是一年中的第几天,要考虑闰年和月份天数。 15. 排序三个整数:使用冒泡排序或其他简单排序算法,确保输入的三个数从小到大排列。 16. 输出乘法口诀表:通过双重循环生成9...

    六年级数学 小升初数学综合测试卷二(无答案) 人教新课标版

    7. **日期与星期的计算**:计算两个日期之间的天数,以及基于特定日期推算另一日期的星期。 8. **几何图形的角计算**:根据已知角的度数,求未知角的度数,运用几何图形的性质。 9. **分数的理解**:分数值为0的...

    50道JAVA基础编程练习题

    GCD可以通过辗转相除法(欧几里得算法)求得,LCM通常是两个数乘积除以GCD的结果。 7. **字符分类计数**:第七题要求统计输入字符串中的字母、空格、数字和其他字符的数量。可以使用循环和条件语句实现。 8. **...

    七年级数学第二章测试卷(2).doc

    10. 代数式的值相等:找到使两个代数式相等的未知数的值。 11. 列方程解决问题:例如5与x的差的1/3比x的2倍大1,需要列出方程来解决。 12. 互为相反数的概念:如果两数相加等于零,则它们互为相反数,可以用来建立...

    《通用知识》考点巩固数学运算(2020年版)_12.docx

    这些题目覆盖了数学运算的多个方面,包括概率、速度与时间、整数性质、单位换算、集合问题、倍数关系以及日期计算等,这些都是数学运算中的基础且重要的知识点。通过解答这些问题,可以提高逻辑思维能力和计算能力,...

    【苏教版】四年级下册数学《期末考试试题》含答案解析.pdf

    若已知两个内角分别为34°和57°,可以通过180° - 34° - 57°求得第三个内角为89°。当三角形中有两个角是锐角(小于90°)且第三个角也是锐角时,该三角形为锐角三角形。 3. **运算定律**:此处体现了结合律和...

    Visual FoxPro程序设计实习教程及习题集答案.doc

    - 使用算术表达式和条件语句可以计算和判断,如`(-b+SQRT(b^2-4*a*c))/(2*a)`和`(-b-SQRT(b^2-4*a*c))/(2*a)`分别计算了一元二次方程的两个根。 4. **字符串操作**: - `LEN()`函数返回字符串的长度,例如`LEN(A1...

Global site tag (gtag.js) - Google Analytics