1. 程式人生 > >Oracle中如何獲取系統當前時間

Oracle中如何獲取系統當前時間


ORACLE裡獲取一個時間的年、季、月、周、日的函式
select to_char(sysdate, 'yyyy' ) from dual; --年
select to_char(sysdate, 'MM' ) from dual; --月
select to_char(sysdate, 'dd' ) from dual; --日
select to_char(sysdate, 'Q') from dual; --季
select to_char(sysdate, 'iw') from dual; --周--按日曆上的那種,每年有52或者53周


獲取系統日期: SYSDATE()
  格式化日期:
TO_CHAR(SYSDATE(),'YY/MM/DD HH24:MI:SS')
  或 TO_DATE(SYSDATE(),'YY/MM/DD HH24:MI:SS')
   select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;
   select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;
   select to_char(sysdate,'yy-mm-dd hh24:mi:ss') from dual
   select to_date('2009-12-25 14:23:31','yyyy-mm-dd,hh24:mi:ss') from dual
  而如果把上式寫作:
   select to_date('2009-12-25 14:23:31','yyyy-mm-dd,hh:mi:ss') from dual
  則會報錯,因為小時hh是12進位制,14為非法輸入,不能匹配。
  轉換的格式:
  表示 year 的:
y 表示年的最後一位 、
  yy 表示年的最後2位 、
  yyy 表示年的最後3位 、
  yyyy 用4位數表示年
  表示month的:
mm 用2位數字表示月 、
  mon 用簡寫形式, 比如11月或者nov 、
  month 用全稱, 比如11月或者november
  表示day的:
dd 表示當月第幾天 、
  ddd 表示當年第幾天 、
  dy 當週第幾天,簡寫, 比如星期五或者fri 、
  day 當週第幾天,全稱, 比如星期五或者friday
  表示hour的:
hh 2位數表示小時 12進位制 、
  hh24 2位數表示小時 24小時
  表示minute的:
mi 2位數表示分鐘
  表示second的:
ss 2位數表示秒 60進位制
  表示季度的:
q 一位數 表示季度 (1-4)
  另外還有ww 用來表示當年第幾周 w用來表示當月第幾周。

  當前時間減去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 to_char(sysdate,'yyyy-mm-dd:hh24:mi:ss:pm:dy') from dual; 年月日 24制小時 分 秒 上/下午 星期中文;
--獲取11月天數--select to_char(last_day(to_date('2010-11-1','YYYY-MM-DD')),'DD') from dual;
--獲取12月天數--select to_char(last_day(to_date('2010-12-1','YYYY-MM-DD')),'DD') from dual;
顯示上個禮拜一到禮拜日 SELECT to_char(SYSDATE,'yyyymmdd')-to_number(to_char(SYSDATE,'d')-1) - 6, to_char(SYSDATE,'yyyymmdd')-to_number(to_char(SYSDATE,'d')-1) from dual