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%的人还看了以下文章

  • 一个完整的servlet验证登录用户名和密码实例

    servlet验证登录用户名和密码实例项目结构 登录页面login.html servlet验证通过后,欢迎页面 登录页面login.html: <body> <form action=”LoginCheck” method=”post”> 用户名:<input type=”text” name=”username” />…

    2020年12月6日
    2.3K0
  • servlet共享变量实现计数器功能(servlet入门)

    servlet类中定义的成员变量,被所有的客户线程共享。 要求利用servlet共享变量实现计数器功能。 Count.java package com.servlet; import java.io.I.*; import javax.servlet.*; import javax.servlet.http.*; public class Count ext…

    2018年11月27日
    2.1K0
  • 简!修改Jupyter 默认打开目录的方法

    1、启动cmd,执行以下命令,查看 jupyter 配置文件路径 C:Users41588>jupyter notebook –generate-configWriting default config to: C:Users41588.jupyterjupyter_notebook_config.py 2、找到配置文件 jupyter_n…

    2023年7月19日 编程开发
    7770
  • MVC(JSP+JavaBean+Servlet)+MYSQL入门实例:实现用户登陆

    MVC(JSP+JavaBean+Servlet)+MYSQL实现用户登陆模块,具体功能: 客户在登陆页面Login.html输入用户名和密码,提交表单,由Servlet(LoginValidate.java)调用JavaBean(LoginDBO.java)验证用户名和密码,最后调用视图returnMessage.jsp显示,如果成功显示成功信息,不成功显…

    2018年11月27日 编程开发
    8.0K0
  • Myeclipse设置JSP视图和代码显示在同一个窗口

    Myeclipse开发时,想同时查看页面及代码视图,如上图,而默认只能看到代码。 Myeclipse设置JSP页面和代码显示在同一个窗口的方法有两种。 一、在JSP页面上右击-open with-other… 在弹出的Editor selection窗口中选择web page editor,就可以了。 二、选择 window-preferences,如下图,…

    2018年12月17日 编程开发
    3.5K0
  • Ubantu为应用程序添加桌面图标

    按要求配置应用程序参数,为应用程序添加桌面图标,实现系统快捷启动。 Ubuntu桌面的左边(默认在左边)有一个启动器,类似于window的任务栏。在Ubuntu18中叫dock(船坞),有时候又叫收藏夹。本文统一叫做启动器 在使用 Ubuntu 操作系统进行开发过程中,由于Ubuntu 系统其操作方式主要通过命令行终端进行交互,故启动软件也一般通过终端键入应…

    2022年9月1日 编程开发
    7400

发表回复

登录后才能评论