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

  • python 函数,字典,列表使用综合实例(经典)

    现有一字典: dict1 = {’01’: [67, 88, 45], ’02’: [97, 68, 85], ’03’: [97, 98, 95], ’04’: [67, 68, 45], } 存放着学生的学号和成绩。成绩列表中的3个数据分别是学生的语文、数学、英语成绩。 要求: 1.编写函数,返回每门成绩均大于等于85的学生的学号。 dict1 = {‘…

    2020年1月31日
    15.2K0
  • Ubantu为应用程序添加桌面图标

    Ubantu为应用程序添加桌面图标Ubantu为应用程序添加桌面图标Ubantu为应用程序添加桌面图标Ubantu为应用程序添加桌面图标

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

    2022年9月1日 编程开发
    9.2K0
  • jsp:include包含html文件出现中文乱码的解决方法

    在admin.jsp页面使用<jsp:include page=”left.html”/>包含了一个HTML页面,代码如下 <div id=”left”><jsp:include page=”left.html”/></div> 出现中文乱码: admin.jsp本身没有中文乱码 &lt…

    2019年11月29日
    7.2K0
  • 如何修改从Maven中心仓库下载到本地的jar包的默认存储位置?

    如何修改从Maven中心仓库下载到本地的jar包的默认存储位置?如何修改从Maven中心仓库下载到本地的jar包的默认存储位置?如何修改从Maven中心仓库下载到本地的jar包的默认存储位置?如何修改从Maven中心仓库下载到本地的jar包的默认存储位置?

    为什么要修改从Maven中心仓库下载到本地的jar包的默认存储位置? 把jar包下载到本地的好处就是,当编译时,会优先从本地的jar包去找,如果本地存在,就直接拿来用,如果不存在,就从Maven的中心仓库去下载。 第一次执行”mvn compile”和”mvn clean”这两个命令时,Maven会去中央仓库下…

    2023年1月28日 编程开发
    1.9K0
  • Ubantu为非标准应用程序添加桌面图标的操作方法

    本文主要指的是第三方或自己编写的非标准应用程序 需要编写.desktop文件。 主要步骤如下:1、进入/usr/share/applications目录,建立一个空白的文本文件,文件要以.desktop作为扩展名。 命令行进入/usr/share/applications cd /usr/share/applications 2、在文件写入启动自己应用的相应…

    2022年9月1日
    6.9K0
  • 1.Spring框架概述

    1.Spring框架概述1.Spring框架概述1.Spring框架概述1.Spring框架概述

    1.1、资源 1.2、Spring历史 1.3、框架特征与功能 1.4、Spring组成 1.5、Spring Boot与Spring Cloud 一、Spring框架概述 Spring是一个开源免费的框架,为了解决企业应用开发的复杂性而创建。Spring框架是一个轻量级的解决方案,可以一站式地构建企业级应用。Spring是模块化的,所以可以只使用其中需要的…

    2023年1月19日 编程开发
    8.6K0

发表回复

登录后才能评论