monthdiff oracle_Oracle計算時間差函數

1、months_between(date1,date2) ?返回兩個日期之間的月份的差值

(1)、如果兩個日期月份內天數相同,或者都是某個月的最后一天,返回一個整數。否則,返回數值帶小數

select months_between(sysdate,addtime)as diff_month from test6

2、interval ? 時間間隔函數

Oracle語法:

INTERVAL 'integer [- integer]' {YEAR | MONTH} [(precision)][TO {YEAR | MONTH}]

該數據類型常用來表示一段時間差, 注意時間差只精確到年和月. precision為年或月的精確域, 有效范圍是0到9, 默認值為2.

i、

select INTERVAL '123-2' YEAR(3) TO MONTH from dual

表示: 123年2個月, "YEAR(3)" 表示年的精度為3, 可見"123"剛好為3為有效數值, 如果該處YEAR(n), n<3就會出錯, 注意默認是2.

ii、

select INTERVAL '4' YEAR from dual

表示: 4年, 同 INTERVAL '4-0' YEAR TO MONTH 是一樣的-----表示4年

iii、

select INTERVAL '50' MONTH from dual;

表示: 50個月, 同 INTERVAL '4-2' YEAR TO MONTH 是一樣 ?----- 表示4年2個月

vi、

select (interval '3-6' year)+(interval '6' month) from dual

表示:3年6個月加上6個月=4年

3、利用Interval可以實現時間的差值運算,而不用借助于工具函數如month,前提是進行運算的字段必須是date類型

當前時間減去7分鐘的時間

select sysdate,sysdate - interval '7' MINUTE from dual

當前時間減去7小時的時間

select sysdate - interval '7' hour from dual

當前時間減去7天的時間

select sysdate - interval ’7’ day from dual

當前時間減去7月的時間

select sysdate,sysdate - interval '7' month from dual

當前時間減去7年的時間

select sysdate,sysdate - interval '7' year from dual

時間間隔乘以一個數字

select sysdate,sysdate - 8*interval '7' hour from dual

select addtime,(addtime - interval '7' YEAR) from test6

含義解釋:

Dual 是 Oracle中的一個實際存在的表,任何用戶均可讀取,常用在沒有目標表的select語句塊中。

比如,我要獲得系統時間,則用“select sysdate from dual” 則返回系統當前的時間:2008-11-07 9:32:49,不同系統可能返回日期的格式不一樣。"select user from dual"則返回當前連接的用戶。如果是"select 1+2 from dual",則返回結果:3

4、利用兩個日期相減,并通過TO_NUMBER和ROUND函數計算得到時間差 ?不精確的計算方法

i、天:

SELECT ROUND(TO_NUMBER(sysdate-addtime)) from test6

ii、小時

SELECT ROUND(TO_NUMBER(sysdate-addtime))*24 from test6

iii、分鐘

SELECT ROUND(TO_NUMBER(sysdate-addtime))*24*60 from test6

秒:ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60)

毫秒:ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60 * 1000)

當然這樣算出來的結果不是很準確,只是粗略的計算,因為當中使用到了ROUND進行了四舍五入!!!

5、利用TO_CHAR和Interval得到的系統事件減去一段時間間隔,并返回精確時間

select sysdate,TO_CHAR(sysdate - interval '4-2' YEAR TO MONTH - interval '1' day,'yyyy/mm/dd hh24:mi:ss') from dual

6、真正精確的計算兩個date類型的日期的間隔,利用trunc函數,注意是:date類型,當然如果你的日期類型定義成timespan當然就不用這么麻煩了!!!

i、計算兩個日期的秒間隔

select86400*(sysdate-addtime)-60*(trunc((86400*(sysdate-addtime))/60)) from test6

ii、計算兩個日期的分鐘間隔 ? 注意:這里的分鐘間隔要考慮到秒的問題,這里舍棄秒,因為上面已經計算出秒的差值了

SELECT sysdate,addtime fromtest6;select trunc(1440*(sysdate-addtime)-60*trunc(1440*(sysdate-addtime)/60)) from test6

iii、計算兩個日期的小時間隔,同樣這里要舍棄秒和分鐘,不采取四舍五入,因為上面已經計算出差值了

select sysdate,addtime fromtest6;select trunc((sysdate-addtime)*24-24*trunc((sysdate-addtime)*24/24)) from test6;

vi、計算兩個日期的周的間隔

SELECT sysdate,addtime fromtest6;select trunc((sysdate-addtime)/7) from test6

vii、計算兩個日期的天的差距

SELECT sysdate,addtime fromtest6;select trunc(sysdate-addtime) from test6

由于每個月的天數無法給出一個確切值,所以無法通過上面的算法給出月份的差距,但是可以通過months_between函數獲得

SELECT sysdate,addtime fromtest6;select trunc(months_between(sysdate,addtime)) from test6;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/394127.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394127.shtml
英文地址,請注明出處:http://en.pswp.cn/news/394127.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

洛谷——P1290 歐幾里德的游戲

P1290 歐幾里德的游戲 題目描述 歐幾里德的兩個后代Stan和Ollie正在玩一種數字游戲&#xff0c;這個游戲是他們的祖先歐幾里德發明的。給定兩個正整數M和N&#xff0c;從Stan開始&#xff0c;從其中較大的一個數&#xff0c;減去較小的數的正整數倍&#xff0c;當然&#xff0c…

passport身份驗證_了解如何使用Passport.js處理Node身份驗證

passport身份驗證by Antonio Erdeljac通過安東尼奧埃爾德雅克 了解如何使用Passport.js處理Node身份驗證 (Learn how to handle authentication with Node using Passport.js) Support me by reading it from its original source: ORIGINAL SOURCE通過閱讀原始來源為我提供支…

leetcode1448. 統計二叉樹中好節點的數目(dfs)

給你一棵根為 root 的二叉樹&#xff0c;請你返回二叉樹中好節點的數目。 「好節點」X 定義為&#xff1a;從根到該節點 X 所經過的節點中&#xff0c;沒有任何節點的值大于 X 的值。 代碼 /*** Definition for a binary tree node.* public class TreeNode {* int val;…

I/O模型系列之四:兩種高性能IO設計模式 Reactor 和 Proactor

不同的操作系統實現的io策略可能不一樣&#xff0c;即使是同一個操作系統也可能存在多重io策略&#xff0c;常見如linux上的select&#xff0c;poll&#xff0c;epoll&#xff0c;面對這么多不同類型的io接口&#xff0c;這里需要一層抽象api來完成&#xff0c;所以就演變出來兩…

python中序列類型和數組之間的區別_「Python」序列構成的數組

一、Python 標準庫的序列類型分為&#xff1a;容器序列&#xff1a;能夠存放不同類型數據的序列(list、tuple、collections.deque)。扁平序列&#xff1a;只能容納一種類型的數據(str、bytes、bytearray 和 array.array)。其中&#xff0c;容器序列存放的是它們所包含的任意類型…

如何使用EF Core在Blazor中創建級聯的DropDownList

介紹 (Introduction) In this article, we are going to create a cascading dropdown list in Blazor using Entity Framework Core database first approach. We will create two dropdown lists — Country and City. Upon selecting the value from the country dropdown, …

gcc/g++命令

參考&#xff1a;http://www.cnblogs.com/cryinstall/archive/2011/09/27/2280824.html 注意&#xff1a;gcc和g是linux系統下的編程常用指令&#xff0c;C語言文件用gcc&#xff0c;cpp文件用g。 1.預處理 g -E filename.cpp > filename.i 功能&#xff1a;輸出預處理后的…

計算機存儲

位&#xff08;bit&#xff09;&#xff1a;一個數字0或一個數字1&#xff0c;代表一位 字節&#xff08;Byte&#xff09;&#xff1a;每逢8位是一個字節&#xff0c;是數據存儲的最小單位 1Byte 8 bit 平時所說的網速&#xff1a; 100Mbps實際上是以位&#xff08;b&#xf…

leetcode113. 路徑總和 II(dfs)

給定一個二叉樹和一個目標和&#xff0c;找到所有從根節點到葉子節點路徑總和等于給定目標和的路徑。說明: 葉子節點是指沒有子節點的節點。示例: 給定如下二叉樹&#xff0c;以及目標和 sum 22&#xff0c;5/ \4 8/ / \11 13 4/ \ / \7 2 5 1 返回:[[5,4,11,…

java forward 修改請求參數_聊聊springboot session timeout參數設置

序本文主要介紹下spring boot中對session timeout參數值的設置過程。ServerPropertiesspring-boot-autoconfigure-1.5.8.RELEASE-sources.jar!/org/springframework/boot/autoconfigure/web/ServerProperties.javaOverridepublic void customize(ConfigurableEmbeddedServletCo…

javascript控制臺_如何使用JavaScript控制臺改善工作流程

javascript控制臺by Riccardo Canella里卡多卡內拉(Riccardo Canella) 如何使用JavaScript控制臺改善工作流程 (How you can improve your workflow using the JavaScript console) As a web developer, you know very well the need to debug your code. We often use extern…

appium===setup/setupclass的區別,以及@classmathod的使用方法

一、裝飾器 1.用setUp與setUpClass區別 setup():每個測試case運行前運行 teardown():每個測試case運行完后執行 setUpClass():必須使用classmethod 裝飾器,所有case運行前只運行一次 tearDownClass():必須使用classmethod裝飾器,所有case運行完后只運行一次 2.是修飾符&#xf…

cache failed module status_Flutter混編之路——iOS踩坑記錄

一、運行Xcode編譯或者flutter run/build 過程中報錯&#xff1a;"x86_64" is not an allowed value for option "ios-arch".解決方案在Debug.xcconfig中指定 “FLUTTER_BUILD_MODEdebug”&#xff0c;Release.xcconfig中指定“FLUTTER_BUILD_MODErelease”…

【最短路徑Floyd算法詳解推導過程】看完這篇,你還能不懂Floyd算法?還不會?...

簡介 Floyd-Warshall算法&#xff08;Floyd-Warshall algorithm&#xff09;&#xff0c;是一種利用動態規劃的思想尋找給定的加權圖中多源點之間最短路徑的算法&#xff0c;與Dijkstra算法類似。該算法名稱以創始人之一、1978年圖靈獎獲得者、斯坦福大學計算機科學系教授羅伯特…

java object類的常用子類_Java中Object類常用的12個方法,你用過幾個?

前言Java 中的 Object 方法在面試中是一個非常高頻的點&#xff0c;畢竟 Object 是所有類的“老祖宗”。Java 中所有的類都有一個共同的祖先 Object 類&#xff0c;子類都會繼承所有 Object 類中的 public 方法。先看下 Object 的類結構(快捷鍵&#xff1a;alt7)&#xff1a;1.…

leetcode面試題 04.12. 求和路徑(dfs)

給定一棵二叉樹&#xff0c;其中每個節點都含有一個整數數值(該值或正或負)。設計一個算法&#xff0c;打印節點數值總和等于某個給定值的所有路徑的數量。注意&#xff0c;路徑不一定非得從二叉樹的根節點或葉節點開始或結束&#xff0c;但是其方向必須向下(只能從父節點指向子…

javaweb學習總結(二十二)——基于Servlet+JSP+JavaBean開發模式的用戶登錄注冊

一、ServletJSPJavaBean開發模式(MVC)介紹 ServletJSPJavaBean模式(MVC)適合開發復雜的web應用&#xff0c;在這種模式下&#xff0c;servlet負責處理用戶請求&#xff0c;jsp負責數據顯示&#xff0c;javabean負責封裝數據。 ServletJSPJavaBean模式程序各個模塊之間層次清晰&…

2018黃河獎設計大賽獲獎_宣布我們的freeCodeCamp 2018杰出貢獻者獎獲獎者

2018黃河獎設計大賽獲獎by Quincy Larson昆西拉爾森(Quincy Larson) 宣布我們的freeCodeCamp 2018杰出貢獻者獎獲獎者 (Announcing Our freeCodeCamp 2018 Top Contributor Award Winners) Over the past 3 years, freeCodeCamp.org has grown from a small open source proje…

Log4j配置詳解

來自: http://www.blogjava.net/zJun/archive/2006/06/28/55511.html Log4J的配置文件(Configuration File)就是用來設置記錄器的級別、存放器和布局的&#xff0c;它可接keyvalue格式的設置或xml格式的設置信息。通過配置&#xff0c;可以創建出Log4J的運行環境。1. 配置文件 …

cors數據類型_如何根據RTK的差分格式選擇千尋cors賬號的源節點進行設置?

千尋cors賬號的設置中源節點是根據使用的品牌RTK是為雙星儀器還是三星儀器選擇&#xff0c;但問題就在于我們看到的RTK的技術參數中一般很少見到標注儀器的衛星系統&#xff0c;更多的是差分格式。其實千尋cors賬號的源節點也可以根據RTK的差分格式進行選擇&#xff0c;不過這兩…