欢迎光临
我们一直在努力

sql server中的datediff移植到oracle计算有误怎么解决? _数据库技巧

建站超值云服务器,限时71元/月

是天数的计算,
SQLServer中:
select datediff(day,2006-05-26 10:11,2006-05-25 11:11)
结果为1天,只判断日期中的天数,是不根据时间来判断的。但是转到ORACLE:
select trunc((to_date(2006-05-26 10:11,YYYY-MM-DD HH:MI) – to_date(2006-05-25 11:11,YYYY-MM-DD HH:MI))) as datediff from dual
结果为0,只有把前面一个日期改成2006-05-26 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 table1
感觉太烦了,有更好的办法吗?


—————————–
解决方法:


select trunc(sysdate) – trunc(to_date(2006-05-28 10:20,YYYY-MM-DD HH24:MI)) from dual



select * from 监控温度表 A where 时间 between ” + Str(dtStart.Value) + “AND ” + Str(dtEnd.Value) + ” And Not Exists (Select 时间 From 监控温度表 Where DateDiff(mi, 时间, A.时间) <= ” + Str(text1.text) + “) order by id


try


select * from 监控温度表 A where 时间 between ” + Str(dtStart.Value) + “AND ” + Str(dtEnd.Value) + ” And Not Exists (Select 时间 From 监控温度表 Where DateDiff(mi, 时间, A.时间) <=5 ) order by id

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » sql server中的datediff移植到oracle计算有误怎么解决? _数据库技巧
分享到: 更多 (0)