반응형
  1. ---- 날자 계산하기 ---------------------------------------------------------------------------------------------------------  
  2.   
  3. -- 오늘날자 (현재날자 0시 0분 0초 ...)  
  4. SELECT to_char(trunc(sysdate,'dd')    ,'yyyy/mm/dd hh24:mi:ss'FROM dual ;                   
  5.   
  6. -- 내일날자 (다음날자 0시 0분 0초 ...)  
  7. SELECT to_char(trunc(sysdate,'dd') + 1,'yyyy/mm/dd hh24:mi:ss'FROM dual ;                   
  8.    
  9. -- 내일날자 (다음날자 현재시 현재분 현재초 ...)  
  10. SELECT to_char(sysdate + 1 ,'yyyy/mm/dd hh24:mi:ss'FROM dual ;  
  11.   
  12.   
  13. ---- 달 계산하기 -----------------------------------------------------------------------------------------------------------  
  14.   
  15. -- 이번달 시작날자(현재달 1일 0시 0분 0초 ...)  
  16. SELECT to_char(trunc(sysdate,'mm') ,'yyyy/mm/dd hh24:mi:ss'FROM dual ;                      
  17.   
  18. -- 이번달 시작날자(현재달 1일 현재시 현재분 현재초 ...)      
  19. SELECT to_char(sysdate - TO_CHAR(SYSDATE, 'dd') + 1 ,'yyyy/mm/dd hh24:mi:ss'FROM dual ;     
  20.   
  21. -- 다음달 시작날자(다음달 1일 0시 0분 0초 ...)  
  22. SELECT to_char(trunc(add_months(sysdate, + 1),'mm') ,'yyyy/mm/dd hh24:mi:ss'FROM dual ;     
  23.   
  24. -- 다음달 시작날자(다음달 1일 현재시 현재분 현재초 ...)  
  25. SELECT to_char(add_months(sysdate, 1) - to_char(add_months(sysdate, 1), 'dd') + 1,'yyyy/mm/dd hh24:mi:ss'FROM dual ;  
  26.   
  27. -- 다음달 오늘 날자(다음달 현재일 현재시 현재분 현재초 ...)  
  28. SELECT to_char(add_months(sysdate, 1) ,'yyyy/mm/dd hh24:mi:ss'FROM dual ;  
  29.   
  30.   
  31. ---- 년 계산하기 -----------------------------------------------------------------------------------------------------------  
  32.   
  33. -- 올해 시작날자(올해 1월 1일 0시 0분 0초 ...)  
  34. SELECT to_char(trunc(sysdate, 'yyyy') ,'yyyy/mm/dd hh24:mi:ss'FROM dual ;       
  35.   
  36. -- 1년전 현재일자(전년 현재달 현재일 0시 0분 0초 ...)  
  37. SELECT to_char(trunc(add_months(sysdate, -12), 'dd'),'yyyy/mm/dd hh24:mi:ss'FROM dual ;      
  38.   
  39. -- 1년전 현재일자(전년 현재달 현재일 현재시 현재분 현재초 ...)  
  40. SELECT to_char(add_months(sysdate, -12),'yyyy/mm/dd hh24:mi:ss'FROM dual ;   
  41.   
  42.   
  43. ---- 참고사항 --------------------------------------------------------------------------------------------------------------  
  44.   
  45. -- TO_CHAR      : 숫자나 날짜를 문자열로 변환   
  46. -- TO_NUMBER    : 문자를 숫자로 변환   
  47. -- TO_DATE      : 문자를 날짜로 변환   
  48.   
  49. SELECT sysdate() -1 FROM dual;   -- 현재시간 - 1일  
  50. SELECT sysdate() -1/24 FROM dual;  -- 현재시간 - 1시간   
  51. SELECT sysdate() -1/24/60 FROM dual;  -- 현재시간 - 1분  
  52. SELECT sysdate() -1/24/60/60 FROM dual;  -- 현재시간 - 1초  
  53.   
  54. -- YYYY     : 4자리 연도로 표시   
  55. -- YY       : 끝의 2자리 연도로 표시  
  56. -- YEAR     : 연도를 알파벳으로 표시  
  57. -- MM       : 달을 숫자로 표시  
  58. -- MON      : 달을 알파벳 약어 로표시  
  59. -- MONTH    : 달을 알파벳으로 표시  
  60. -- DD       : 일자를 숫자로 표시  
  61. -- DAY      : 일에 해당하는 요일   
  62. -- DY       : 일에 해당하는 요일의 약어   
  63. -- HH       : 12시간으로 표시(1-12)  
  64. -- HH24     : 24시간으로 표시(0-23)  
  65. -- MI       : 분을 표시   
  66. -- SS       : 초를 표시   
  67. -- AM, PM   : 오전인지 오후인지를 표시  
  68.   
  69.   
  70. ---- 기초 날자구하기 -------------------------------------------------------------------------------------------------------  
  71.   
  72. -- SYSDATE          : 현재 시스템의 날짜 및 시간을 구함   
  73. SELECT sysdate FROM dual;  
  74.   
  75. -- LAST_DAY         : 지정한 날짜의 해당 월의 마지막 날짜를 구함  
  76. SELECT last_day(sysdate) FROM dual;  
  77.   
  78. -------------------------------------------------------------------------------  
  79. -- 두 날자 사이의 차이 (1번째 인자가 2번째인자보다 작으면 음수, 크면 양수)  
  80. -- 날자를 구할때 날자이후 데이터 까지 있다면 계산이 시간단위까지 계산하는듯하다  
  81. -- 그래서 날자까지만 변환해서 잘라줘야 한다.  
  82.   
  83. SELECT to_date(to_char(to_date('20120220042517','yyyymmddhh24miss'), 'yyyymmdd'), 'yyyymmdd') - to_date(to_char(sysdate, 'yyyymmdd'), 'yyyymmdd'FROM dual;  
  84. -------------------------------------------------------------------------------  
  85.   
  86. -- MONTHS_BETWEEN   : 두달 사이의 개월 차이 (1번째 인자가 2번째인자보다 작으면 음수, 크면 양수)  
  87. SELECT MONTHS_BETWEEN(to_date('20120219','yyyymmdd'), sysdate) FROM dual;  
  88.   
  89. -- ADD_MONTHS       : 현재달로부터 지정한 달의 날자를 구함 (즉 1달뒤 2달뒤 등의 날자를 구함)  
  90. SELECT add_months(sysdate, -3) FROM dual;  
  91.   
  92. -- ROUND            : 날짜에 대한 반올림 (12시이후(12:00 00초포함)면 1일을 더함)  
  93. SELECT round(sysdate) FROM dual;  
  94. SELECT round(to_date('20110221120000''yyyymmddhh24miss')) FROM dual;  
  95.   
  96. -- TRUNC : 날짜에 대한 버림   
  97. SELECT trunc(sysdate) FROM dual;  
  98.   
  99.   
  100. ---- TO_CHAR 의 변환 형식들 ------------------------------------------------------------------------------------------------  
  101.   
  102. -- 9    : 일반적인 숫자를 나타냄   
  103. SELECT to_char('123''999999'FROM dual;  
  104.   
  105. -- 0    : 앞의 빈자리를 0으로 채움   
  106. SELECT to_char('123''000000'FROM dual;  
  107.   
  108. -- $    : dollar를 표시함   
  109. SELECT to_char('123''$999999'FROM dual;  
  110.   
  111. -- L    : 지역 통화 단위(ex \)   
  112. SELECT to_char('123''L999999'FROM dual;  
  113.   
  114. -- . : 소숫점을 표시함   
  115. SELECT to_char('123''999.999'FROM dual;  
  116. SELECT to_char('12.3''999.999'FROM dual;  
  117.   
  118. -- , : 천단위를 표시함   
  119. SELECT to_char('12345''999,999,999'FROM dual; 


반응형
반응형