¢Ñ ADD_MONTHS
|
|
1. Á¤ÀÇ : ÁöÁ¤ÇÑ ³¯Â¥·ÎºÎÅÍ Æ¯Á¤ °³¿ùÀ» ´õÇÑ ³¯Â¥¸¦ ±¸ÇÔ 2. »ç¿ë¿¹) SELECT ADD_MONTHS(SYSDATE, 25) FROM DUAL; °á°ú) 2010/04/17 17:04:36 3. Âü°í : -(minus)°ªÀÏ °æ¿ì ¿ùÀ» Â÷°¨ÇÑ´Ù.
|
|
|
|
|
|
|
¢Ñ SYSDATE |
|
1. Á¤ÀÇ : ÇöÀç ½Ã½ºÅÛÀÇ ³¯Â¥ ¹× ½Ã°£À» ±¸ÇÔ 2. »ç¿ë¿¹) SELECT SYSDATE FROM DUAL; °á°ú) 2008/03/17 16:52:16
|
¢Ñ LAST_DAY
|
|
1. Á¤ÀÇ : ÁöÁ¤ÇÑ ³¯Â¥ÀÇ ÇØ´ç ¿ùÀÇ ¸»ÀÏÀ» ±¸ÇÔ 2. »ç¿ë¿¹) SELECT LAST_DAY(SYSDATE) FROM DUAL; °á°ú) 2008/03/31 16:52:16
|
¢Ñ NEXT_DAY |
|
1. Á¤ÀÇ : ÁöÁ¤ÇÑ ³¯Â¥·ÎºÎÅÍ °¡Àå °¡±õ°Ô ´Ù°¡¿Ã ÇØ´ç ¿äÀÏÀÇ ³¯Â¥¸¦ ±¸ÇÔ 2. ±â´É : ¿äÀϱ¸ºÐ : 1 - ÀÏ¿äÀÏ 2 - ¿ù¿äÀÏ .... 7 - Åä¿äÀÏ 3. »ç¿ë¿¹) SELECT NEXT_DAY(TO_DATE('20080317'), 1) FROM DUAL; °á°ú) 2008/03/22 00:00:00
|
¢Ñ MONTHS_BETWEEN |
|
1. Á¤ÀÇ : µÎ ³¯Â¥ »óÀÌÀÇ °³¿ù ¼ö¸¦ ±¸ÇÔ 2. »ç¿ë¿¹) SELECT MONTHS_BETWEEN(TO_DATE('20100505'), SYSDATE) FROM DUAL; °á°ú) 25.5900....
|
¢Ñ ³¯Â¥¿¡ ´ëÇÑ ¿äÀÏ ±¸Çϱâ |
|
1. Á¤ÀÇ : ³¯Â¥¿¡ ´ëÇÑ ¿äÀÏ ±¸Çϱâ 2. »ç¿ë¿¹) SELECT TO_CHAR(SYSDATE, 'DY') FROM DUAL; °á°ú) ȯ°æ¿¡ µû¶ó¼ : ¿ù,È,¼ö,~~ ÀÏ (ÇѱÛ) MON,THE,WED~~, SUN (¿µ¹®) * Ç×»ó Çѱ۷Π¿øÇÒ °æ¿ì (Oracle¼Ó¼ºÀ» ¹Ù²Ü ¼öµµ ÀÖÁö¸¸ ¾Æ·¡¿Í °°ÀÌ ÇÑ sql¿¡¼¸¸ Àû¿ë½Ãų¼öµµ ÀÖ´Ù) SELECT TO_CHAR(SYSDATE, 'DY', 'NLS_DATE_LANGUAGE=KOREAN') FROM DUAL;
»ç¿ë¿¹2) SELECT TO_CHAR(SYSDATE, 'D') FROM DUAL; °á°ú) 1,2 ~~ 7; --¼ýÀÚ·Î ³ª¿È (1:ÀÏ, 2:¿ù, ~~ 7:Åä¿äÀÏ)
|
¢Ñ ¿ùº° ÁÖÂ÷ ±¸Çϱâ
|
|
1. Á¤ÀÇ : ÇØ´ç ¿ùº°·Î ÁÖÂ÷(1~6ÁÖ)¸¦ ±¸ÇÑ´Ù. 2. 1ÁÖ¸¦ -> ÀÏ ~ Åä ±îÁö ±âÁØÀÏ °æ¿ì SQL SELECT '20101205' , CEIL((substrb('20101205', -2, 2) + 7 - TO_CHAR(TO_DATE('20101205', 'yyyymmdd'), 'D')) / 7) as "ÁÖÂ÷" FROM DUAL;
3. 1ÁÖ¸¦ -> ¿ù ~ ÀÏ ±îÁö ±âÁØÀÏ °æ¿ì SQL - Á¾·ù1 (¸¸¾à, ¸Å¿ù1ÀÏÀÌ ÀÏ¿äÀÏÀ̸é 02ÀÏÀ» 1ÁÖ·Î º»´Ù.) SELECT DECODE(WC, 0, 1, WC) FROM ( SELECT '20081231' DT , CEIL((substrb('20081231', -2, 2) + 7 - DECODE(TO_CHAR(TO_DATE('20081231', 'yyyymmdd'), 'D'), 1, 1, 0) - DECODE(TO_CHAR(TO_DATE('20081231','yyyymmdd'),'D'), 1, 7, (TO_CHAR(TO_DATE('20081231','yyyymmdd'),'D'))) ) / 7) as WC FROM DUAL ) ;
3. 1ÁÖ¸¦ -> ¿ù ~ ÀÏ ±îÁö ±âÁØÀÏ °æ¿ì SQL - Á¾·ù2 (¸¸¾à, ¸Å¿ù1ÀÏÀÌ ÀÏ¿äÀÏÀ̸é 02ÀÏÀ» 1ÁÖ·Î º»´Ù.) - À§ Á¾·ù1 SQL¹®ÀåÀ» Á»´õ º¸±â ÁÁ°Ô Á¾·ù2 SQL ¹®À¸·Î ´Ü¼ø º¯È¸¸ ½ÃÄ×À½. SELECT CEIL((DD + 7 - SUN- DECODE( YO, 1, 7, YO)) / 7) as WC FROM ( SELECT SUBSTR('20090302', -2, 2) AS DD , DECODE(SUBSTR('20090302', -2, 2), '01', 0, DECODE(TO_CHAR(TO_DATE('20090302', 'yyyymmdd'), 'D'), 1, 1, 0)) AS SUN , TO_CHAR(TO_DATE('20090302', 'yyyymmdd'), 'D') AS YO FROM DUAL ) ;
3. 1ÁÖ¸¦ -> ¿ù ~ ÀÏ ±îÁö ±âÁØÀÏ °æ¿ì SQL - Á¾·ù3 (¸¸¾à, ¸Å¿ù1ÀÏÀÌ ÀÏ¿äÀÏÀ̸é 02ÀÏÀ» 2ÁÖ·Î º»´Ù.) SELECT CEIL((DD + 7 + SUN- DECODE( YO, 1, 7, YO)) / 7) as WC FROM ( SELECT SUBSTR('20090301', -2, 2) AS DD , DECODE(SUBSTR('20090301', -2, 2), '01', 0, DECODE(TO_CHAR(TO_DATE('20090301', 'yyyymmdd'), 'D'), 1, -1, 1)) AS SUN , TO_CHAR(TO_DATE('20090301', 'yyyymmdd'), 'D') AS YO FROM DUAL ) ;
|
A. Á¤ÀÇ : ¿ùº° ¸îÁÖÂ÷±îÁö Á¸Àç ÇÏ´ÂÁö Á¶È¸ ¿¹¹®1 : 201012 ¿ù¿¡ ´ëÇØ¼ ¸îÁÖÂ÷±îÁö ÀÖ´ÂÁö Á¶È¸
SELECT CEIL((DD + 7 + SUN- DECODE( YO, 1, 7, YO)) / 7) as WC FROM ( SELECT SUBSTR(WORKDT, -2, 2) AS DD , DECODE(SUBSTR(WORKDT, -2, 2), '01', 0, DECODE(TO_CHAR(TO_DATE(WORKDT, 'yyyymmdd'), 'D'), 1, -1, 1)) AS SUN , TO_CHAR(TO_DATE(WORKDT, 'yyyymmdd'), 'D') AS YO FROM (SELECT TO_CHAR(ADD_MONTHS('201012' || '01', 1) - 1, 'YYYYMMDD') WORKDT FROM DUAL) ) ; °á°ú : 5
¿¹¹®2 : 2010³âµµ 1~12¿ù±îÁö °¢¿ùº° ÁÖÂ÷ ±¸Çϱâ
SELECT CEIL((DD + 7 + SUN- DECODE( YO, 1, 7, YO)) / 7) as WC FROM ( SELECT SUBSTR(WORKDT, -2, 2) AS DD , DECODE(SUBSTR(WORKDT, -2, 2), '01', 0, DECODE(TO_CHAR(TO_DATE(WORKDT, 'yyyymmdd'), 'D'), 1, -1, 1)) AS SUN , TO_CHAR(TO_DATE(WORKDT, 'yyyymmdd'), 'D') AS YO FROM (SELECT TO_CHAR(ADD_MONTHS('201012' || '01', 1) - 1, 'YYYYMMDD') WORKDT FROM DUAL, (SELECT to_char(rownum, '00') rn FROM dual connect by level <= 12) ) ) ;
|
¢Ñ ³â°£ ÁÖÂ÷ ±¸Çϱâ
|
|
1. Á¤ÀÇ : ³â°£ ÁÖÂ÷ (1~52ÁÖ)¸¦ º¸¿©ÁØ´Ù.
2. ÇÑ ³¯Â¥¿¡ ´ëÇÑ ³â°£ ÁÖÂ÷ ±¸Çϱâ SELECT '20090115' as "³¯Â¥" , CEIL( (TO_CHAR(TO_DATE('20090115','yyyymmdd'),'ddd') +
TO_CHAR(TO_DATE(SUBSTR('20090115',1,4)||'0101','yyyymmdd'),'d') - 1) / 7)
DDATE FROM dual
3. 2010-12-10 ºÎÅÍ 2011-01-15 ±îÁö µÎ ³¯Â¥ »çÀÌÀÇ ³â°£ÁÖÂ÷¸¦ ±¸Çϱâ
SELECT TO_CHAR(TRUNC(TO_DATE('2010-12-10','YYYY-MM-DD') + ((LEVEL-1)*7), 'IW') + 5, 'YYYY') YYYY , TO_CHAR(TRUNC(TO_DATE('2010-12-10','YYYY-MM-DD') + ((LEVEL-1)*7), 'IW'), 'IW') WW , TRUNC(TO_DATE('2010-12-10','YYYY-MM-DD') + ((LEVEL-1)*7), 'IW') - 1 BEGIN_DAY , TRUNC(TO_DATE('2010-12-10','YYYY-MM-DD') + ((LEVEL-1)*7), 'IW') + 5 END_DAY FROM DUAL CONNECT BY LEVEL <= ( (TRUNC(TO_DATE('2011-01-15','YYYY-MM-DD'), 'IW')+5) -- °Ë»öÁ¾·áÀÏ - (TRUNC(TO_DATE('2010-12-10','YYYY-MM-DD'), 'IW')-1) -- °Ë»ö½ÃÀÛÀÏ + 1 ) / 7 + 1 ;
|
¢Ñ ½Ã°£ ´õÇϱâ
|
|
WITH T(DT) AS ( SELECT SYSDATE - (1/24) * 2 FROM DUAL --ÇöÀç½Ã°¢¿¡¼ 2½Ã°£ Àü UNION ALL SELECT SYSDATE - (1/24) * 1 FROM DUAL --ÇöÀç½Ã°¢¿¡¼ 1½Ã°£ Àü UNION ALL SELECT SYSDATE + (1/24) * 0.5 FROM DUAL --ÇöÀç½Ã°¢¿¡¼ 30ºÐ ÈÄ UNION ALL SELECT SYSDATE + (1/24) * 1 FROM DUAL --ÇöÀç½Ã°¢¿¡¼ 1½Ã°£ UNION ALL SELECT SYSDATE + (1/24) * 2 FROM DUAL --ÇöÀç½Ã°¢¿¡¼ 2½Ã°£ ÈÄ UNION ALL SELECT SYSDATE + (1/24) * 2.25 FROM DUAL --ÇöÀç½Ã°¢¿¡¼ 2½Ã°£ 20ºÐ ÈÄ ) SELECT DT FROM T ;
SELECT TO_CHAR(SYSDATE, 'YYYYMMDD HH24MISS' ) C_TIME, -- ÇöÀç½Ã°£ TO_CHAR(SYSDATE + 1/24,'YYYYMMDD HH24MISS' ) TIME, -- 1½Ã°£ ÈÄ TO_CHAR(SYSDATE + 40/(24*60),'YYYYMMDD HH24MISS' ) MIN, -- 40ºÐ ÈÄ TO_CHAR(SYSDATE + 10/(24*60*60),'YYYYMMDD HH24MISS') SEC -- 10ÃÊ ÈÄ FROM DUAL;
|
¢Ñ |
|
|
¢Ñ ROUND |
|
1. Á¤ÀÇ : ³¯Â¥¿¡ ´ëÇÑ ¹Ý¿Ã¸²Ã³¸®
|
¢Ñ TRUNC |
|
1. Á¤ÀÇ : ³¯Â¥¿¡ ´ëÇÑ ¹ö¸²Ã³¸®
|
¢Ñ |
|
|
|