Oracle取今天今年當月的數據

Oracle中取今天的數據,之前使用到where to_char(t.t_created_tm, 'YYYY-MM-DD')= to_char(SYSDATE, 'YYYY-MM-DD');

這種方式效率低下,而且對t.t_created_tm即使建了索引,但是因爲對他進行了函數封裝後比較,查詢時索引也用不上。

這裏介紹可以使用TRUNC(SYSDATE)=當天來比較過濾數據,達到取今天數據的效果。

SELECT TRUNC(SYSDATE) FROM DUAL;
--TRUNC(SYSDATE)
2013/1/5
下面的方法比較好。
SELECT * FROM TBL_STEP T WHERE T.T_CREATE_TM >= TRUNC(SYSDATE);
如果取當年的數據

SELECT * FROM TBL_STEP T WHERE T.T_CREATE_TM >= TRUNC(SYSDATE,'YYYY');
當月的數據

SELECT * FROM TBL_STEP T WHERE T.T_CREATE_TM>=TRUNC(SYSDATE, 'MM') AND T.T_CREATE_TM<=LAST_DAY(SYSDATE)

參考:http://blog.csdn.net/chexitianxia/article/details/6945871


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章