程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle to_date()函數使用

Oracle to_date()函數使用

編輯:Oracle數據庫基礎

Oracle to_date()函數用於日期轉換,下面就為您詳細介紹Oracle to_date()函數的用法,希望可以讓您對Oracle to_date()函數有更深的認識。

Oracle to_date()函數 與24小時制表示法及mm分鐘的顯示:

一、在使用Oracle to_date()函數來做日期轉換時,很多Java程序員也許會直接的采用“yyyy-MM-dd HH:mm:ss”的格式作為格式進行轉換,但是在Oracle中會引起錯誤:“ORA 01810 格式代碼出現兩次”。
如:

  1. select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mm:ss') from dual; 

原因是SQL中不區分大小寫,MM和mm被認為是相同的格式代碼,所以Oracle的SQL采用了mi代替分鐘。

  1. select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual; 

二、另要以24小時的形式顯示出來要用HH24

  1. select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;//mi是分鐘  
  2. select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;//mm會顯示月份   

Oracle中的to_date參數含義

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.日期到字符操作

  1. select sysdate,to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from dual    
  2. select sysdate,to_char(sysdate,’yyyy-mm-dd hh:mi:ss’) from dual    
  3. select sysdate,to_char(sysdate,’yyyy-ddd hh:mi:ss’)   
  4. from dual    
  5. select sysdate,to_char(sysdate,’yyyy-mm iw-d hh:mi:ss’) from dual    

參考oracle的相關文檔(Oracle901DOC/SERVER.901/A90125/SQL_ELEMENTS4.HTM#48515)
3.字符到日期操作

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

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

4.trunk/ ROUND函數的使用

  1. select trunc(sysdate ,’YEAR’) from dual  
  2. select trunc(sysdate ) from dual  
  3. select to_char(trunc(sysdate ,’YYYY’),’YYYY’) from dual 

5.Oracle有毫秒級的數據類型
--返回當前時間 年月日小時分秒毫秒

  1. select to_char(current_timestamp(5),’DD-MON-YYYY HH24:MI:SSxFF’) from dual; 

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

  1. select to_char(current_timestamp(9),’MI:SSxFF’) from dual; 

6.計算程序運行的時間(ms)

  1. declare  
  2. type rc is ref cursor;  
  3. l_rc rc;  
  4. l_dummy all_objects.object_name%type;  
  5. l_start number default dbms_utility.get_time;  
  6. begin  
  7. for I in 1 .. 1000  
  8. loop  
  9. open l_rc for  
  10. ’select object_name from all_objects ’||  
  11. ’where object_id = ’ || i;  
  12. fetch l_rc into l_dummy;  
  13. close l_rc;  
  14. end loop;  
  15. dbms_output.put_line  
  16. ( round( (dbms_utility.get_time-l_start)/100, 2 ) ||  
  17. ’ seconds...’ );  
  18. end; 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved