一、獲取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;
oracle sysdate 時間整理
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.