[오라클 날짜함수: MONTHS_BETWEEN, SYSDATE, TODAY, LAST_DAY, NEXT_DAY]

1. select name, lastlogin, lastlogin+30, lastlogin-30, lastlogin+365,
             lastlogin+5/24, lastlogin-8/24 from member where id = 'jsoh2';
--member테이블에서 id가 jsoh2위치하는 name, lastlogin 2개의 컬럼을 뿌려주고,
--lastlogin 컬럼의 값에 +30일을 출력, -30일을 출력, +365일을 출력,
--5시간 더한 값을 출력, 8시간 뺀 값을 출력

2. select months_between('2008/11/25', '2001/08/12') "기간" from dual;
--월 단위로 날짜 연산을 하는 함수
--개월간의 차이: 87.4193548387097개월, 약 87개월
3. SELECT ADD_MONTHS(SYSDATE,5) FROM DUAL;
--월 단위로 날짜 연산을 하는 함수
4. select ID, JOINDATE, MONTHS_BETWEEN(SYSDATE, JOINDATE) TENURE,
            ADD_MONTHS(JOINDATE, 6) REVIEW FROM MEMBER
   WHERE id = 'jsoh2' and MONTHS_BETWEEN(SYSDATE, JOINDATE) < 120;
--member테이블에서 id가 jsoh2위치하는 id, joindate 2개의 컬럼을 뿌려주고,
--tenure컬럼에는 현재날짜(sysdate)-회원가입한날(joindate)를 계산한 개월수 출력하고,
--review컬럼에는 회원가입한날(joindate)에서 6개월 이후의 값을 출력
5. select sysdate from dual;
--현재시간
6. SELECT SYSDATE TODAY, LAST_DAY(SYSDATE) LASTDAY FROM dual ;
--해당 날짜가 속한 달의 마지막 날짜를 반환하는 함수
7. SELECT NEXT_DAY(sysdate, 'sunday') from dual
--해당 일을 기준으로 명시된 요일의 다음 날짜를 변환하는 함수

 

※ 아래 이미지 3개는 전부 같은 내용을 담고 있다.

[날짜함수: MONTHS_BETWEEN, SYSDATE, TODAY, LAST_DAY, NEXT_DAY] 

1번
출력결과
NAME LASTLOGIN LASTLOGIN+30 LASTLOGIN-30 LASTLOGIN+365 LASTLOGIN+5/24 LASTLOGIN-8/24
홍길동 2008-07-10 15:37:25 2008-08-09 15:37:25 2008-06-10 15:37:25 2009-07-10 15:37:25 2008-07-10 20:37:25 2008-07-10 07:37:25
2번
출력결과
기간
1900-03-27 10:03:52
3번
출력결과
ADD_MONTHS(SYSDATE,5)
2009-04-25 17:23:13
4번
출력결과
ID JOINDATE TENURE REVIEW
jsoh2 2008-07-10 15:36:35 1900-01-04 11:40:13 2009-01-10 15:36:35
5번
출력결과
SYSDATE
2008-11-25 17:23:13
6번
출력결과
TODAY LASTDAY
2008-11-25 17:23:14 2008-11-30 17:23:14
7번
출력결과
NEXT_DAY(SYSDATE,'SUNDAY')
2008-11-30 17:23:14

[출처] 오라클 MONTHS_BETWEEN, SYSDATE, TODAY, LAST_DAY, NEXT_DAY 날짜함수|작성자 오렌지


'개발 > ORCLE' 카테고리의 다른 글

DBMS_JOB의 활용  (0) 2009.03.05
오라클 INTERVAL  (0) 2009.03.05
오라클 랜덤, 중복제거  (0) 2008.11.18
오라클 VIEW  (0) 2008.11.18
오라클 서브쿼리  (0) 2008.11.12
블로그 이미지

쭈니후니

개발자로서 공부와 낚시를 좋아하는 한사람으로서의 추억을 담을 블로그입니다.

,

자바스크립트에서의 배열이란 참 독특한 놈입니다. ㅡㅡ..

일단 배열이지만 길이를 가변적으로 유동이 가능합니다.

.length 프로터피로 배열의 값을 설정하면 언제든지 크기가 변합니다.

게다가 pop, push, shift, unshift 메서드를 사용해서 앞 뒤 스택을 흉내낼 수도 있고요

다차원 배열을 지원하지 않지만 비슷하게 사용 할 수도 있습니다. ^^

게다가 자바스크립트는 변수의 타입이 없고 내부에서 알아서 오토타입캐스팅이 강하게 지원되기 때문에

한 배열에 어떤 객체나 기본타입을 넣어도 타입 캐스팅 없이 넣고 빼고가 가능합니다~

그리고 length 를 1000 으로 설정하더라도 실제로 값을 넣은 인덱스만 메모리에 할당하기 때문에

메모리의 낭비 없이 크기의 가변적인 활용이 가능합니다.

배열을 생성하는 방법에 대하여 알아봅시다~

ex1)

var empty = [];
var primes = [2, 3, 5, 7, 11];
var misc = [1.1, true, "a", ]; //서로 다른 타입을 원소로 가진 배열도 가능
var a = new Array();
var b = new Array(5, 4, 3, "test");

값을 얻을 때는 다 아실테니까 ^^ 넘어가고요

참 특이하죵?? 메서드는 더 특이합니다. 다음 글에 올려드릴게용~


블로그 이미지

쭈니후니

개발자로서 공부와 낚시를 좋아하는 한사람으로서의 추억을 담을 블로그입니다.

,

자바스크립트에서 객체란 이름과 값으로 구성된 프로퍼티의 집합입니다.~

자바스크립트의 배열과는 비스무레하면서도 다른 개념이죠~

객체 생성 방법은 여러가지가 있답니다~

ex1)

//객체를 생성하고 객체에 대한 참조를 변수 book 에 저장한다.
var book = {};
//객체의 프로터피를 설정한다.
book.title = "JavaScript: The Definitive Guide";
//다른 프로터피들을 설정한다. 중첩된 객체의 사용을 유의하라.
book.chapter1 = new Object();
book.chapter1.title = "Introduction to JavaScript";
book.chapter1.pages = 11;
book.chapter2 = {title: "Lexical Structure", pages: 6};
//객체에서 프로터피 값을 읽어온다.
alert("Outline: " + book.title + "\n\t"
   + "Chapter 1 " + book.chapter1.title + "\n\t"
   + "Chapter 2 " + book.chapter2.title);

 

이런식으로 new 를 사용하는 방법과 객체 리터럴 {} 을 사용하는 방법이 있답니다. ㅋㅋ

이런 객체들은 기본적으로 자바스크립트의 Object 객체를 상속받기 때문에 Object 의 프로퍼티들을

. 연산자로 사용할 수 있답니다. 메서드를 보고 싶으시면 api 를 보시기를 ^^


'개발 > Java Script' 카테고리의 다른 글

자바스크립트 innerHtml 따옴표 등 쓸때..  (0) 2014.07.21
자바스크립트 배열  (0) 2008.11.20
자바스크립트 with  (0) 2008.11.20
자바스크립트 null과 undefined  (0) 2008.11.20
자바스크립트 for/in 문 활용법  (1) 2008.11.20
블로그 이미지

쭈니후니

개발자로서 공부와 낚시를 좋아하는 한사람으로서의 추억을 담을 블로그입니다.

,

변수의 유효범위 체인을 임시적으로 바꾸는 함수 with 입니다~

 

ex1)

<html><body>
<script language="javascript">
function f(){
 with(frmThis){
  var name = txtName.value;
  alert(name);
 }
}
</script>
<form id="frmThis">
 <input id="txtName" value="영석">
 <script language="javascript">f();</script>
</form>
</body></html>

 

id txtName 인 텍스트의 값을 얻기 위해서는

frmThis.txtName.value 이런식으로 얻어야합니다. 한두번은 쓸 수야 있지만

여러번 사용되어질 경우 반복적인 문장이 들어갑니다.

with 를 사용하면 코딩의 양을 확 줄일 수가 있습니다~

with 에 인자에 계속 사용되는 객체를 추가하면

객체의 이름과 . 까지를 생략할 수 있습니다.

하지만 with 가 사용된 자바스크립트 코드는 최적화 되기 어렵다네요.

그래서 같은 코드이지만 with 가 사용된 코드가 더 느릴 수가 있답니다.

그렇기에 다른 방법을 소개합니다~

ex2)

var form = frame[1].document.forms[0];
form.name.value = "";
form.address.value = "";
form.email.value = "";

 

이런식으로 코드를 짠다면 최적화에 무리를 주지도 않고 불필요한 코딩은 감소하겠죠??

물론 앞에 오는 객체가 frmThis. 이런 식으로 짧다면 소용없게지만

길 경우에는 유용하겠죠~? ^^


'개발 > Java Script' 카테고리의 다른 글

자바스크립트 배열  (0) 2008.11.20
자바스크립트 객체란?  (0) 2008.11.20
자바스크립트 null과 undefined  (0) 2008.11.20
자바스크립트 for/in 문 활용법  (1) 2008.11.20
자바스크립트 변수선언 유효범위  (0) 2008.11.19
블로그 이미지

쭈니후니

개발자로서 공부와 낚시를 좋아하는 한사람으로서의 추억을 담을 블로그입니다.

,

자바스크립트를 사용하다 보면

변수 값을 찍기 위해

alert(변수이름);  등등을 사용하는데

null 도 아니고 undefined 라는 놈이 자주 튀어나오더라고요 -0-;;

이놈이 뭔가 하니

null 은 변수가 참조하고 있는 객체가 없는 상태 이고

undefined 는 변수가 선언은 되었으나 초기화가 되지 않은 상태랍니다.

 

ex)

var a;

alert(a);

 

요놈은 undefined 가 튀어나오겠지옹 ^^


'개발 > Java Script' 카테고리의 다른 글

자바스크립트 객체란?  (0) 2008.11.20
자바스크립트 with  (0) 2008.11.20
자바스크립트 for/in 문 활용법  (1) 2008.11.20
자바스크립트 변수선언 유효범위  (0) 2008.11.19
자바스크립트 history  (0) 2008.10.29
블로그 이미지

쭈니후니

개발자로서 공부와 낚시를 좋아하는 한사람으로서의 추억을 담을 블로그입니다.

,

자바스크립트에서 사용하는

향상된 for 문 비스무레 한 문장입니다~

 

ex)

var a = { x:1, y:2, z:3 };

var b = new Array();

var i = 0;

for( b[i++] in a );
 

이런식으로 사용하면 a 배열에 모든 프로퍼티 값을

b 가 참조하는 Array 객체로 손쉽게 복사 할 수 있어용~

 이어서 b 객체에 있는 모든 값을 보려면

ex2)

for( var c in b ){

  alert( b[c] );

}

이런식으로 for/in 문을 사용하면 배열뿐이 아니라

그 객체에 모든 사용자 프로퍼티와 값을 볼 수 있답니다.


'개발 > Java Script' 카테고리의 다른 글

자바스크립트 객체란?  (0) 2008.11.20
자바스크립트 with  (0) 2008.11.20
자바스크립트 null과 undefined  (0) 2008.11.20
자바스크립트 변수선언 유효범위  (0) 2008.11.19
자바스크립트 history  (0) 2008.10.29
블로그 이미지

쭈니후니

개발자로서 공부와 낚시를 좋아하는 한사람으로서의 추억을 담을 블로그입니다.

,

자바스크립트란 참 희한한 언어인것 같아요 ㅋㅋ

유효범위에 관해서 한가지 제가 몰랐던 것~

만약 선언되지 않은 변수를 사용하게 되었을 경우

ex)

function add(x, y){

sum = x + y;              //sum 은 선언되지 않았을 경우

}

이런 경우에 sum 변수는 선언 된 적이 없기때문에 에러가 날 것 같지만

자바스크립트에서는 기본적으로 컴파일 시 선언을 한답니다.

그런데 문제는 무조건 전역변수로 간주하기 때문에 메모리에 불필요한 낭비가 ^^ 될 수 도 있고 값이

꼬이는 문제가 생길 수 있으니 돌아간다고 무시하지 말고

꼭 var 선언을 하시기를~

 

function a(){

  var i = 0;

 

  for(j = 0; j < 10; j++){
    var sum = 0;
    sum += j;
  }

  alert(sum);

}

이런 경우에도 alert(sum); 은 동작한답니다.

지역변수의 경우 함수 내부의 지역변수와 전역변수는 유효범위가 있으나

함수 내부에서의 블락단위의 변수 유효범위는 존재하지 않는다는 !!

'개발 > Java Script' 카테고리의 다른 글

자바스크립트 객체란?  (0) 2008.11.20
자바스크립트 with  (0) 2008.11.20
자바스크립트 null과 undefined  (0) 2008.11.20
자바스크립트 for/in 문 활용법  (1) 2008.11.20
자바스크립트 history  (0) 2008.10.29
블로그 이미지

쭈니후니

개발자로서 공부와 낚시를 좋아하는 한사람으로서의 추억을 담을 블로그입니다.

,

select *  from ( select * from 테이블 order by dbms_random.value )

기본적인 오라클 랜덤 함수 예이다.

select row_number() over(partition by 중복조회컬럼 order by order by 정렬컬럼) 재명명할 컬럼이름 
from 테이블

중복제거 하면서 전체값 가져오는 방법이다.

EX)

select * from
(
SELECT a.course_id,a.course_name,b.study_day_term,

row_number() over(partition by a.kind order by a.kind) cnt, a.kind  

--파란색 부분은 같은 강좌 단원 중복제거 한것입니다

FROM elt_course a, elt_org_course b

WHERE b.org_class1 = 'S110'

 AND b.open_state = '1'

 AND b.a_admission = '1'

 AND a.course_id = b.course_id

 order by dbms_random.value

--이 SELECT문을 랜덤으로 뿌려주게 하였습니다.
)
where cnt = '1'

-- 중복 제거문을 썼지만 1로 정해주지 않으면 같은 단원이 다 나오기때메 하나만 나오게 한것입니다.

and rownum <= 4


제가 만든 간단한 추천강좌 랜덤 쿼리입니다.

'개발 > ORCLE' 카테고리의 다른 글

오라클 INTERVAL  (0) 2009.03.05
오라클 MONTHS_BETWEEN, ADD_MONTHS SYSDATE, TODAY, LAST_DAY, NEXT_DAY 날짜함수  (0) 2009.03.05
오라클 VIEW  (0) 2008.11.18
오라클 서브쿼리  (0) 2008.11.12
오라클 SUBSTR 2번쨰  (0) 2008.11.10
블로그 이미지

쭈니후니

개발자로서 공부와 낚시를 좋아하는 한사람으로서의 추억을 담을 블로그입니다.

,

오라클 VIEW

개발/ORCLE 2008. 11. 18. 09:59
VIEW : 하나의 가상테이블이다.

- 실제 데이터가 저장되는 것은 아니고, 뷰를 통해 데이터 관리
- 복잡하게 쿼리 날려서 얻은 결과를 미리 뷰에서 조인해서 뷰테이블로 만들고 그 테이블 일반 쿼리를 날리면,
   코딩 축소
- 한개의 뷰로 여러테이블 검색가능
- 사용자별로 다른데이터 ACCESS(뷰에 접근권한 구분하면 된다)

VIEW 제한 조건

- 테이블에 NOT NULL로 만든 컬럼 뷰에 다포함
- 뷰에는 INSERT 불가능
- 뷰에는 WITH READ ONLY 데이터 갱신 불가
- 뷰데는 WITH CHECK OPTION 뷰의 조건에 해당되는 데이터만 삽입 삭제 수정 가능.

EX)

CREATE OR REPLACE VIEW 뷰테이블 이름
(컬럼1, 컬럼2, 컬럼3, 컬럼4)
AS
SELECT 컬럼1, 컬럼2, 컬럼3, 컬럼4 FROM 테이블 이름

뷰 테이블 생성 방법이다.
블로그 이미지

쭈니후니

개발자로서 공부와 낚시를 좋아하는 한사람으로서의 추억을 담을 블로그입니다.

,

AJAX에 대해 기본적으로 알고 싶다면
http://wiki.javajigi.net/pages/viewpage.action?pageId=3919 << 여기가서 한번 보시길 바랍니다.

바로 소스로 들어가 보겠습니다.

HTML

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<html>
<script language="JavaScript" src="ajax02.js">
</script>
<script language="JavaScript">

/*
 브라우저에 상관없이 HttpRequest를 생성했다.
 GET방식으로 test.xml를 호출했다.
 XMLHttpRequest는 UTF-8 문자셋을 이용하여 전송한다.
 이를 XMLHttpRequest에서 변경하지 못하기 때문에 전송해 주는 쪽에서 처리해야 한다.
*/

function btn2_click()
{
 sendRequest("./test.xml",null,handleReq,"GET");
}

window.onload = function()
{
 var btn1 = document.getElementById("btnTemp1");
 var btn2 = document.getElementById("btnTemp2");
 
 btn2.onclick = btn2_click;
}

var firstTime = true;

function handleReq()
{
 if( request == null )
  return;
 if( request.readyState == 4 ){
  if( request.status == 200 ){
   var txt = request.responseText;
   toDebug( txt );
  }
  else if( request.status == 404 ){
   toDebug("요청한 파일이 존재하지 않습니다."); 
  }
  else if( request.status == 500 ){
   toDebug("요청한 파일을 처리하면서 에러가 발생했습니다."); 
  }
  firstTime = true; 
 }
 else if( request.readyState == 1 ||
  request.readyState == 2 ||
  request.readyState == 3 )
 {
  if( firstTime ){
   toDebug( "데이터 전송중입니다." ); 
   firstTime = false;
  }
 }
}

</script>
 <body>
  <input type="button" value="click" id="btnTemp">
  <input type="button" value="click" id="btnTemp2">
   <div id="debug"></div>
 </body>
</html>

JS (ajax02.js)
스크립트가 길어서 계쏙 공통으로 쓸 스크립트는 js로 걸어 둔것입니다.
html 한곳에 다넣어도 상관은 없습니다.


var firstDebug = true;
function toDebug( l )
{
 var tmp = document.getElementById("debug");
 if( firstDebug )
 {
  tmp.innerHTML = l;
  firstDebug = false;
 }
 else
 {
  tmp.innerHTML = tmp.innerHTML + "<br>" + l;
 }
}

var request = null;

function sendRequest(url,param,callback, imethod)
{
 request = getXMLHttpRequest();
 request.onreadystatechange = callback;
 request.open( imethod, url, true );
 request.send( param );
}


function getXMLHttpRequest()
{
 if(window.ActiveXObject)
 {
  try
  {
   return new ActiveXObject("Msxml2.XMLHTTP");
  }
  catch(e)
  {
   try
   {
    return new ActiveXObject("Microsoft.XMLHTTP");
   }
   catch(e1)
   {
    return null;
   }
  }
 }
 else if(window.XMLHttpRequest)
 {
  return new XMLHttpRequest();
 }
 else
 {
  return null;
 }
}

XML

<?xml version="1.0" encoding="utf-8" ?>
<lists>
<name>XML</name>
<name1>AJAX</name1>
</lists>
 
이정도로해서 실행을 시켜서 버튼을 눌러보면 xml에 있는 값이 불러 오게 됩니다.
asp,jsp,php를 이용해서 xml이나 db에 있는값을 받아와서 이용하면
멋진 ajax를 만들수 있을겁니다.^^


'개발 > AJAX' 카테고리의 다른 글

ajax 변수 담기  (0) 2018.02.20
블로그 이미지

쭈니후니

개발자로서 공부와 낚시를 좋아하는 한사람으로서의 추억을 담을 블로그입니다.

,