oracle sysdate 時間整理

一、獲取oracle日期中的年份

在Oracle中,要獲得日期中的年份,例如把sysdate中的年份取出來,並不是一件難事。常用的方法是:

                           Select to_number(to_char(sysdate,'yyyy')) from dual,


      而實際上,oracle本身有更好的方法,那就是使用Extract函數,使用方法是:Select Extract(year from sysdate) from dual,
      這種方法省掉了類型轉換,看上去更加簡潔。相應的,要取得月份或日,可以用:select extract (month from sysdate) from dual和select extract (day from sysdate) from dual。

 

      例如(1):
SQL> SELECT '年' AS "標題", EXTRACT(YEAR FROM SYSDATE) AS "數值" FROM dual UNION ALL
2  SELECT '月' AS "標題", EXTRACT(MONTH FROM SYSDATE) AS "數值" FROM dual UNION ALL
3  SELECT '日' AS "標題", EXTRACT(DAY FROM SYSDATE) AS "數值" FROM dual;
 

 


    例如(2):
SQL>  Select to_number(to_char(sysdate,'yyyymm')) as 月份   from dual

 

 

->>>另一種方式獲取月份  年份

select EXTRACT(MONTH FROM SYSDATE) AS month FROM dual    ---獲取月份  改成year就是獲取年份

                           

 

 

二、insert插入語句 插入時間的寫法
       

   寫insert語句時,日期類型字段用 to_date('2011-04-15 13:25:00','yyyy-mm-dd hh24:mi:ss'),如果是插入當前時間,直接寫sysdate應該就可以顯示時分秒,

如果不行再轉換一次試試

to_date(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')


三、查詢到秒、毫秒級
     

 查詢到秒     select to_char(sysdate,'yyyy-MM-DD HH24:MM:SS') from dual
查詢到毫秒   SELECT TO_CHAR(systimestamp,'yyyy-MM-DD HH24:MM:SSSSS') from dual

至於你插入的找不到秒,你自己看下那些數據是不是你當下插入的,也許是歷史數據,還有表結構,你插入sysdate的時候是否做了時間轉化等,如trunc(sysdate,'dd')



+1 這情況我也遇到過,插入的時候都是sysdate,但怎麼都查不出時分秒來,原來是查詢語句沒寫對,應該這樣寫:
SQL code:select to_char(tdate,'yyyy-mm-dd hh24:mi:ss') 時間 from t_tmp


四、截取掉部分  時分秒


trunc(sysdate)= trun(sysdate,'dd')截取掉時分秒,結果是2011-05-11 00:00:00
select trunc(sysdate,'mm') from dual; 截取月份,結果 2011-05-01 00:00:00
select trunc(sysdate,'yy') from dual; 截取年份,結果 2011-01-01 00:00:00

+7 是加7天
+1/24 是加 1/24 天,即一個小時

結果意思就是 一週後的凌晨1點整

select trunc(sysdate)+7+1/24 from dual; 可以看到結果

------
select trunc(sysdate-1) from dual;

 

 

發佈了26 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章