1. 程式人生 > >Oracle 計算兩個日期之間的差(天數,小時,分鐘,秒,毫秒)

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;

---------------------  作者:正兒八經小騷年  來源:CSDN  原文:https://blog.csdn.net/u013058618/article/details/52919724  版權宣告:本文為博主原創文章,轉載請附上博文連結!