Background Image

FORUM

조회 수 16541 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
FAQ & Tip 에서 확인 자료 입니다.
http://www.cubrid.com/zbxe/58122

위 방법으로는 오라클에서처럼 처리를 할 수 없다는 말씀인데.

--Case 1
create table xtbl
(
A int,
B timestamp default systimestamp not null,
C datetime default sysdatetime not null
)

--Case 2
create table xtbl2
(
A int,
B timestamp default SYS_TIMESTAMP not null,
C varchar(14) default TO_CHAR(SYS_TIMESTAMP, 'YYYYMMDDHH24MISS') not null
)

저 같은 경우는 Case 형식으로 오라클에서 사용하였습니다.
근데 Cubrid에서는 위와 같은 방법(Case 1,2)은 안되는것 같은데...

INSERT INTO TB_TMP01(A, B) VALUES(1, TO_CHAR(SYS_TIMESTAMP, 'YYYYMMDDHH24MISS'))

위와 같은 방법 밖에 없는 것인지 궁금합니다.

그리고 Cubrid에서도 저장일시와 같은 경우 위와 같이 varchar로 처리하는 것이 처리면에서나 성능상의 장점이 많은 것인지?

답변 부탁 드립니다.

감사합니다.



  • ?
    웁쓰 2010.01.08 03:14

    default sys_timestamp sysdate 경우 오라클과 다르게 작동 합니다. 테이블 생성시로 변환되어 들어가게 됩니다.
    다음의 테이블과 같이 생성이 됩니다.

    csql> ;sc test_data3
    === <Help: Schema of a Class> ===
     <Class Name>
         test_data3

    Attributes>

         int_data             INTEGER
         char_date            TIMESTAMP DEFAULT timestamp '06:05:54 PM 01/07/2010' NOT NULL

    고로 불편 하시겠지만 다음 질의처럼 매번 시간을 입력하셔야 합니다.
    INSERT INTO TB_TMP01(A, B) VALUES(1, TO_CHAR(SYS_TIMESTAMP, 'YYYYMMDDHH24MISS'))

    두번째 , 답변 입니다. 시분초를 사용하셔야 한다면 timestamp 타입을 쓰시는게 성능 향상에 도도움 될 것 같습니다. 저장되는 용량의 차이가 발생하기 때문입니다.

    다음은 테스트 결과인데 참고 하시기 바랍니다.

     

    create table test_data1

    (

    int_data int,

    char_date varchar(8) default to_char(sysdate,'YYYYMMDD') not null

    );

    insert into test_data1

    SELECT a.rnum

         , case when a.moddata = 1 then '20101201'|| '000'|| to_char(MOD(rownum,10))

                when a.moddata = 2 then '20101202'|| '000'|| to_char(MOD(rownum,10))

                  when a.moddata = 3 then '20101203'|| '000'|| to_char(MOD(rownum,10))

                when a.moddata = 4 then '20101204'|| '000'|| to_char(MOD(rownum,10))

                when a.moddata = 5 then '20101205'|| '000'|| to_char(MOD(rownum,10))

                when a.moddata = 6 then '20101206'|| '000'|| to_char(MOD(rownum,10))

                when a.moddata = 7 then '20101207'|| '000'|| to_char(MOD(rownum,10))

                when a.moddata = 8 then '20101208'|| '000'|| to_char(MOD(rownum,10))

                when a.moddata = 9 then '20101209'|| '000'|| to_char(MOD(rownum,10))

                when a.moddata = 10 then '20101210'|| '000'||to_char(MOD(rownum,10))

     else '20101211'|| '000'|| to_char(MOD(rownum,10))

     end

      from (

    SELECT rownum rnum , mod(rownum,10) moddata

    FROM table({0,1,2,3,4,5,6,7,8,9}) t0(a),

    table({0,1,2,3,4,5,6,7,8,9}) t1(a), -- 100

    table({0,1,2,3,4,5,6,7,8,9}) t2(a), -- 1,000

    table({0,1,2,3,4,5,6,7,8,9}) t3(a) -- 10,000

    ) a

    ;x

    create table test_data3

    (

    int_data int,

    char_date timestamp default systimestamp not null

    );

     

    insert into test_data3

    SELECT a.rnum

         , case when a.moddata = 1 then to_timestamp('20101201','YYYYMMDD')

                when a.moddata = 2 then to_timestamp('20101202','YYYYMMDD')

                   when a.moddata = 3 then to_timestamp('20101203','YYYYMMDD')

                when a.moddata = 4 then to_timestamp('20101204','YYYYMMDD')

                   when a.moddata = 5 then to_timestamp('20101205','YYYYMMDD')

                when a.moddata = 6 then to_timestamp('20101206','YYYYMMDD')

                   when a.moddata = 7 then to_timestamp('20101207','YYYYMMDD')

                when a.moddata = 8 then to_timestamp('20101208','YYYYMMDD')

                   when a.moddata = 9 then to_timestamp('20101209','YYYYMMDD')

                when a.moddata = 10 then to_timestamp('20101210','YYYYMMDD')

               else to_timestamp('20101211','YYYYMMDD')

               end

      from (

    SELECT rownum rnum , mod(rownum,10) moddata

    FROM table({0,1,2,3,4,5,6,7,8,9}) t0(a),

    table({0,1,2,3,4,5,6,7,8,9}) t1(a), -- 100

    table({0,1,2,3,4,5,6,7,8,9}) t2(a), -- 1,000

    table({0,1,2,3,4,5,6,7,8,9}) t3(a) -- 10,000

    ) a

    ;x

     

    $ csql -u dba index_test -S

     

            CUBRID SQL Interpreter

     

     

    Type `;help' for help messages.

     

    csql> ;info stats test_data1

     

    CLASS STATISTICS

    ****************

     Class name: test_data1 Timestamp: Thu Jan  7 18:06:23 2010

     Total pages in class heap: 416

     Total objects: 10000

     Number of attributes: 2

     Atrribute: int_data

        id: 1

        Type: DB_TYPE_INTEGER

        Mininum value: 1

        Maxinum value: 10000

        B+tree statistics:

     

     Atrribute: char_date

        id: 0

        Type: DB_TYPE_STRING

        Mininum value: Undefined

        Maxinum value: Undefined

        B+tree statistics:

            BTID: { 2 , 2856 }

            Cardinality: 10 (10) , Total pages: 21 , Leaf pages: 20 , Height: 2

     

     

     

     

    Current transaction has been committed.

    csql> ;info stats test_data3

     

    CLASS STATISTICS

    ****************

     Class name: test_data3 Timestamp: Thu Jan  7 18:06:23 2010

     Total pages in class heap: 312

     Total objects: 10000

     Number of attributes: 2

     Atrribute: char_date

        id: 0

        Type: DB_TYPE_UTIME

        Mininum value: 1291129200

        Maxinum value: 1291993200

        B+tree statistics:

     

     Atrribute: int_data

        id: 1

        Type: DB_TYPE_INTEGER

        Mininum value: 1

        Maxinum value: 10000

        B+tree statistics:

     

    오라클의 경우 http://scidb.tistory.com/entry/Varchar28-VS-Date-어느-것이-우월한가

    에서 장단점을 확인 하시길 바랍니다.

     

    즐거운 하루 되세요.


  1. CUBRID 사용자를 위한 DBeaver 도구 출시 안내

  2. CUBRID 시작후 csql로 시작할 때 에러가 발생합니다.

  3. php, cubrid에서 그림, 동영상파일업로드코딩중인데요.

  4. C-API 매뉴얼 위치요?

  5. 큐브리드 2008 버전이 다운로드 않됩니다.

  6. set 객체 정보까지 어떻게 검색합니까?

  7. 큐브리드를 사용해 윈도환경에서 사용할 프로그램을 개발코자 합니다

  8. 쿼리 확인 부탁 드립니다.

  9. 날짜 기본값 처리 방법 문의 드립니다.

  10. 쿼리의 물음표에 대해 문의드립니다.

  11. cubrid 설치전 php설치에서

  12. CUBRID 2008 R2.0에서 R2.1로 업그레이드 시

  13. 형변환 오류 문의

  14. 큐브리드 메니저 데이터베이스검사시 에러문구

  15. 데이터베이스 오류문제

  16. 큐브리드는 mysql 의 varchar(255) 와 동일한 길이가 아니네요?

  17. CUBRID 컨설팅을 받고 싶습니다.

  18. 윈도우7+iis(7.5)+php5+cubrid에 xe 설치 후에 초기하면에 빨간색 글들.

  19. 큐브리드 매니저에서 엑셀 데이타 입력시 문제

  20. 큐브리드에 데이타 타입 지정문제

  21. set type 문의

Board Pagination Prev 1 ... 184 185 186 187 188 189 190 191 192 193 ... 213 Next
/ 213

Contact Cubrid

영업문의 070-4077-2112 / 기술문의 070-4077-2148 / 대표전화 070-4077-2110 / Email. contact_at_cubrid.com
Contact Sales