oracle 计算时间差,包含年、月、日、时、分、秒

在做系统时,如图书管理系统、车辆管理系统、事务管理系统等,经常需要我们计算两个日期相差多少天,图书是否应该归还,事情是否完成等。

今天给大家分享oracle 中如何计算时间差

oracle时间差是以天数为单位,所以换算成年月,日

select floor(to_number(sysdate-to_date('2018-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))/365) as spanYears from dual       //年
select ceil(moths_between(sysdate-to_date('2018-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))) as spanMonths from dual       //月
select floor(to_number(sysdate-to_date('2018-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))) as spanDays from dual            //天
select floor(to_number(sysdate-to_date('2018-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24) as spanHours from dual        //时
select floor(to_number(sysdate-to_date('2018-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24*60) as spanMinutes from dual   //分
select floor(to_number(sysdate-to_date('2018-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24*60*60) as spanSeconds from dual//秒

oracle日期格式

to_date(“要转换的字符串”,”转换的格式”)   两个参数的格式必须匹配,否则会报错。即按照第二个参数的格式解释第一个参数。

to_char(日期,”转换格式” ) 即把给定的日期按照“转换格式”转换。

转换的格式:

表示year的:y 表示年的最后一位 yy 表示年的最后2位 yyy 表示年的最后3位 yyyy 用4位数表示年

表示month的:mm 用2位数字表示月;mon 用简写形式 比如11月或者nov ;month 用全称 比如11月或者november

表示day的:dd 表示当月第几天;ddd表示当年第几天;dy 当周第几天 简写 比如星期五或者fri;day当周第几天 全写

比如星期五或者friday。

表示hour的:hh 2位数表示小时 12进制; hh24 2位数表示小时 24小时

表示minute的:mi 2位数表示分钟

表示second的:ss 2位数表示秒 60进制

表示季度的:q 一位数 表示季度 (1-4)

另外还有ww 用来表示当年第几周 w用来表示当月第几周。

24小时制下的时间范围:00:00:00-23:59:59

12小时制下的时间范围:1:00:00-12:59:59

比如:

select to_char(sysdate,’yy-mm-dd hh24:mi:ss’) from dual   //显示:08-11-07 13:22:42

select to_date(‘2005-12-25,13:25:59′,’yyyy-mm-dd,hh24:mi:ss’) from dual //显示:2005-12-25 13:25:59

而如果把上式写作:select to_date(‘2005-12-25,13:25:59′,’yyyy-mm-dd,hh:mi:ss’) from dual,则会报错,因为小时hh是12进制,13为非法输入,不能匹配。

125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/1254.html

(0)
上一篇 2018年2月13日 上午11:00
下一篇 2018年2月13日 下午1:08

99%的人还看了以下文章

  • Pillow-优秀的Python图像处理库安装及入门教程

    Pillow库是Python 图像处理库(Python image library)的一个派生分支,提供了广泛的文件格式(BMP,PNG,JPEG等)支持,提供基本的图像处理能力,如: 图像存储、图像显示、改变图像大小,旋转图像,图像格式转换,色场空间转换,图像增强,直方图处理,插值和滤波等等。 比起OpenCV库的图像处理,功能有限,但函数使用非常方便,大…

    2020年12月8日
    1.7K0
  • JSP实现网站计数器—javabean

    jsp javabean实例,制作简单网站计数器。此实例在于学习javabean的使用。

    编程开发 2020年2月11日
    3.5K0
  • createStatement参数详解,带参数与不带参数的区别

    Connection接口的createStatement方法,可用来创建向数据库发送SQL语句的对象,用于执行SQL语句。 常用代码: Statement stmt = con.createStatement(); Statement stmt = con.createStatement (int resultSetType,int resultSetCon…

    2018年10月23日
    3.8K0
  • 上机实战七:EL和JSTL的使用

    建议学时:2 一、使用EL表达式简化javaBean的开发 编写一个用户登录的JavaBean,用户信息包括用户名和密码。 编写user.jsp,使用setProperty设置用户名为125jz,密码为123。 使用EL获取用户名和密码并显示。 二、使用EL实现问卷调查 用户输入昵称、所在城市,并且以多选的方式让用户选择所使用的开发语言,然后使用EL表达式显…

    2018年12月4日
    4.0K0
  • 实用sql查询语句详解2:高级查询

    上篇文章《实用sql查询语句详解1:给列取别名、查询部分行、多列排序》介绍了简单查询语句,这节课给大家讲解基本条件查询、集合函数、分组查询、子查询、并集和交集。 基本条件查询 比较运算符:>,>=,<,<=,=,!= between a and b,in(a,b,c),not exists,is null,like ‘%_’,or,a…

    2018年2月5日
    2.5K0
  • python 期末复习-综合练习题

    十八、分别使用for循环和while循环求1+2+3+4+……+856的和 要求: 1、新建一个“sum.py”文件。 2、编写程序。 3、调试程序。 4、排除错误。 十九、输入一个数,判断奇数偶数 要求: 1、新建一个“number.py”文件 2、编写程序。 3、调试程序。 4、排除错误。 二十、分别使用for循环和while循环输出1到100之间的偶数…

    2023年6月15日
    6810

发表回复

登录后才能评论