在 oracle 如何计算 两个日期间的 秒数、分钟数、小时数、天数、周数、月数、年数

在 oracle 如何计算 两个日期间的 秒数、分钟数、小时数、天数、周数、月数、年数,第1张

时间,在数据库里实际是以长整型表示即1900-1-1日到当前的天数于是不难理解时间是可以做减法的

当然,为了简便,规定差值1为一天的,如果当前时间+365即明年的4月2日22:49:40秒

那么算下来,1秒即为:1/(243600)=000001157

至于分钟,小时,周数等等,都是些函数转换没啥希奇

select sysdate - to_date('20141020', 'yyyymmdd') from dual;

oracle里日期型之间是可以直接运算的,这样的结果就是现在的时间和2014-10-20日之间间隔的天数,注意这个值是有小数位的,即两个日期值之间的精确计算的差值,如果需要结果为整数的天数,对结果turnc、round即可。

Year:

yy two digits 两位年 显示值:07

yyy three digits 三位年 显示值:007

yyyy four digits 四位年 显示值:2007

Month:

mm number 两位月 显示值:11

mon abbreviated 字符集表示 显示值:11月,若是英文版,显示nov

month spelled out 字符集表示 显示值:11月,若是英文版,显示november

Day:

dd number 当月第几天 显示值:02

ddd number 当年第几天 显示值:02

dy abbreviated 当周第几天简写 显示值:星期五,若是英文版,显示fri

day spelled out 当周第几天全写 显示值:星期五,若是英文版,显示friday

处理月份天数不定的办法

select to_char(add_months(last_day(sysdate) +1, -2), 'yyyymmdd'),last_day(sysdate) from dual

找出今年的天数

select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual

闰年的处理方法

to_char( last_day( to_date('02' | | :year,'mmyyyy') ), 'dd' ) 如果是28就不是闰年

一年的第几天

select TO_CHAR(SYSDATE,'DDD'),sysdate from dual

查找月的第一天,最后一天

SELECT Trunc(Trunc(SYSDATE, 'MONTH') - 1, 'MONTH') First_Day_Last_Month,

Trunc(SYSDATE, 'MONTH') - 1 / 86400 Last_Day_Last_Month,

Trunc(SYSDATE, 'MONTH') First_Day_Cur_Month,

LAST_DAY(Trunc(SYSDATE, 'MONTH')) + 1 - 1 / 86400 Last_Day_Cur_Month

FROM dual;

以上就是关于在 oracle 如何计算 两个日期间的 秒数、分钟数、小时数、天数、周数、月数、年数全部的内容,包括:在 oracle 如何计算 两个日期间的 秒数、分钟数、小时数、天数、周数、月数、年数、Oracle 获得两个日期之间间隔的月份数和天数、oracle中,知道系统时间(sysdate),有个日期函数能得到他是整个时间的第几天。不是每年的ddd,每月的dd等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9730100.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存