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 版權宣告:本文為博主原創文章,轉載請附上博文連結!