Oracle trunc()函数的用法
--Oracle trunc()函数的用法
/**************日期********************/
select trunc(sysdate) from dual --2011-3-18 今天的日期为2011-3-18
select trunc(sysdate, 'mm') from dual --2011-3-1 返回当月第一天.
select trunc(sysdate,'yy') from dual --2011-1-1 返回当年第一天
select trunc(sysdate,'dd') from dual --2011-3-18 返回当前年月日
select trunc(sysdate,'yyyy') from dual --2011-1-1 返回当年第一天
select trunc(sysdate,'d') from dual --2011-3-13 (星期天)返回当前星期的第一天
select trunc(sysdate, 'hh') from dual --2011-3-18 14:00:00 当前时间为14:41
select trunc(sysdate, 'mi') from dual --2011-3-18 14:41:00 TRUNC()函数没有秒的精确
/***************数字********************/
/*
TRUNC(number,num_digits)
Number 需要截尾取整的数字。
Num_digits 用于指定取整精度的数字。Num_digits 的默认值为 0。
TRUNC()函数截取时不进行四舍五入
*/
select trunc(123.458) from dual --123
select trunc(123.458,0) from dual --123
select trunc(123.458,1) from dual --123.4
select trunc(123.458,-1) from dual --120
select trunc(123.458,-4) from dual --0
select trunc(123.458,4) from dual --123.458
select trunc(123) from dual --123
select trunc(123,1) from dual --123
select trunc(123,-1) from dual --120
SELECT 'TRUNC' AS truncType , TRUNC( SYSDATE ) FROM DUAL
UNION ALL
SELECT 'Year' AS truncType , TRUNC( SYSDATE, 'YYYY' ) FROM DUAL
UNION ALL
SELECT 'Quarter' AS truncType, TRUNC( SYSDATE, 'Q' ) FROM DUAL
UNION ALL
SELECT 'Month' AS truncType, TRUNC( SYSDATE, 'MM' ) FROM DUAL
UNION ALL
SELECT '1DayOfWeek' AS truncType, TRUNC( SYSDATE, 'D' ) FROM DUAL
UNION ALL
SELECT 'Hour' AS truncType, TRUNC( SYSDATE, 'HH' ) FROM DUAL;
另Connect by:
with x as
( select 'aa' chr from dual
union all
select 'bb' chr from dual)
select level ,chr,lpad( ' ' ,( level - 1 )* 5 , '-' )||chr other from x connect by level <= 3 ;
SELECT TO_CHAR(ADD_MONTHS(SYSDATE, -LEVEL + 1), 'YYYY-MM') MONTH,
TO_CHAR(LAST_DAY(ADD_MONTHS(SYSDATE, -LEVEL + 1)), 'DD') DAY
FROM DUAL
CONNECT BY LEVEL <= 12;
ALL_SOURCE,user_objects...
SELECT * FROM ALL_SOURCE where TYPE='PROCEDURE' AND UPPER(TEXT) LIKE '%XXX%';
SELECT * FROM USER_SOURCE where TYPE='PROCEDURE' AND UPPER(TEXT) LIKE '%XXX%';
select * from all_objects
where owner = 'XX' and object_name like '%XXXX%'
AND OBJECT_type ='PROCEDURE'
ORDER BY created DESC;
select * from user_objects
where object_name like '%XXXXX%'
AND OBJECT_type ='PROCEDURE'
ORDER BY created DESC;