oracle中計算兩個日期之間的差值

2021-07-24 00:17:06 字數 2681 閱讀 5516

最近幾天在工作中用到了一項計算時間的功能,計算兩個時間之間的天數差,順道總結一下oracle中的語句:

兩個date型別字段:start_date,end_date,計算這兩個日期的時間差(分別以天,小時,分鐘,秒,毫秒): 天:

round(to_number(end_date - start_date))

小時:round(to_number(end_date - start_date) * 24)

分鐘:round(to_number(end_date - start_date) * 24 * 60) 秒:

round(to_number(end_date - start_date) * 24 * 60 * 60)

毫秒:round(to_number(end_date - start_date) * 24 * 60 * 60 * 1000)

另外總結一下to_date與to_char函式:

oracle中: 

select to_date('2007-06-28 19:51:20','yyyy-mm-dd hh24:mi:ss') from dual; 

一般sql中: 

select to_date('2007-06-28 19:51:20','yyyy-mm-dd hh:mm:ss') from dual; 

區別: 

1、hh修改為hh24。 

2、分鐘的mm修改為mi。

24 小時的形式顯示出來要用 hh24

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

select to_date('2005-01-01 13:14:20','yyyy-mm-dd hh24:mi:ss') from dual;

1.日期格式引數含義說明  

d 一周中的星期幾  

day 天的名字,使用空格填充到9個字元  

dd 月中的第幾天  

ddd 年中的第幾天  

dy 天的簡寫名  

iw iso標準的年中的第幾周  

iyyy iso標準的四位年份  

yyyy 四位年份  

yyy,yy,y 年份的最後三位,兩位,一位  

hh 小時,按12小時計  

hh24 小時,按24小時計  

mi 分  

ss 秒  

mm 月  

mon 月份的簡寫  

month 月份的全名  

w 該月的第幾個星期  

ww 年中的第幾個星期     1.日期時間間隔操作

當前時間減去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 』2』 hour from dual

2.日期到字元操作 

select sysdate,to_char(sysdate,』yyyy-mm-dd hh24:mi:ss』) from dual

select sysdate,to_char(sysdate,』yyyy-mm-dd hh:mi:ss』) from dual

select sysdate,to_char(sysdate,』yyyy-ddd hh:mi:ss』) from dual

select sysdate,to_char(sysdate,』yyyy-mm iw-d hh:mi:ss』) from dual

參考oracle的相關關文件(oracle901doc/server.901/a90125/sql_elements4.htm#48515)

3. 字元到日期操作 

select to_date(』2003-10-17 21:15:37』,』yyyy-mm-dd hh24:mi:ss』) from dual

具體用法和上面的to_char差不多。

4. trunk/ round函式的使用 

select trunc(sysdate ,』year』) from dual

select trunc(sysdate ) from dual

select to_char(trunc(sysdate ,』yyyy』),』yyyy』) from dual

5.oracle有毫秒級的資料型別 

--返回當前時間 年月日小時分秒毫秒

select to_char(current_timestamp(5),』dd-mon-yyyy hh24:mi:ssxff』) from dual;

--返回當前時間的秒毫秒,可以指定秒後面的精度(最大=9)

select to_char(current_timestamp(9),』mi:ssxff』) from dual;

在Access中計算兩個日期之間的工作日天數

雖然看起來是乙個小問題,但很不幸的是在access中沒有直接的函式支援 excel中有乙個現成的函式 netweekdays 所以非得自己做點開發 第一步 建立乙個自定義的函式 public function weekdaycount firstdate as date,lastdate as da...

excel中計算兩個日期之間的相差多少天

今天在群裡看到一則訊息 解決辦法如下 兩個準備知識點 1,首先把字串格式的日期解析成日期型別,用mid方法 mid text,start num,num chars 可以從字串中取出子字串,這裡start num是開始位置 最小值為1,不是0 num chars是取出多少個字串 例如f42單元格內容...

Oracle中計算日期之間相差的年月

首先給大家分享乙個巨牛巨牛的人工智慧教程,是我無意中發現的。教程不僅零基礎,通俗易懂,而且非常風趣幽默,還時不時有內涵段子,像看 一樣,哈哈 我正在學習中,覺得太牛了,所以分享給大家!點這裡可以跳轉到教程 一 基本用法 20個月換算成1年8個月,selecttrunc 20 12 年 mod 20,...