• SQL Server中的Datediff移植到Oracle计算有误解决方案


    天数的计算
    SQL Server中:
    select datediff(day,'2012-05-02 10:11','2012-05-01 11:11')
    结果为1天,只判断日期中的天数,是不根据时间来判断的。

    但是转到Oracle:
    select trunc((to_date('2012-05-02 10:11','YYYY-MM-DD HH:MI') - to_date('2012-05-01 11:11','YYYY-MM-DD HH:MI'))) as datediff from dual
    结果为0,只有把前面一个日期改成'2012-05-02 11:11'之后的时间才返回1天。
    我要求是只根据天数来求值,看来要统一把比较的日期改到最小单位为天的日期,实际使用中是要把sysdate与结果集中字段计算的,该字段compdate是YYYY-MM-DD HH:MI格式的varchar2类型,可以这么写:
    select trunc(to_date(to_char(sysdate,'YYYYMMDD'),'YYYYMMDD') - to_date(to_char(to_date(compdate,'YYYY-MM-DD HH:MI'),'YYYYMMDD'),'YYYYMMDD')) from dual
    select trunc(sysdate) - trunc(to_date('2012-05-01 10:20','YYYY-MM-DD HH24:MI')) from dual

  • 相关阅读:
    JavaScript对象与数组大全
    矛盾后……
    信息化及信息系统课程相关网络资源
    有雪的日子..
    Gmail下蛋!!
    OS由XP换用WIN2003,问题以及解决
    软件考试
    又是生我的气..
    不得不说的无奈
    2005新年新气象..
  • 原文地址:https://www.cnblogs.com/a7265813/p/3054768.html
Copyright © 2020-2023  润新知