Background Image

FORUM

조회 수 16535 추천 수 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 도구 출시 안내

    Date2024.04.23 Byadmin Views144006
    read more
  2. CUBRID 시작후 csql로 시작할 때 에러가 발생합니다.

    Date2010.01.11 By김대진 Views12509
    Read More
  3. php, cubrid에서 그림, 동영상파일업로드코딩중인데요.

    Date2010.01.11 By난꼭한다 Views19165
    Read More
  4. C-API 매뉴얼 위치요?

    Date2010.01.11 By그래너 Views14501
    Read More
  5. 큐브리드 2008 버전이 다운로드 않됩니다.

    Date2010.01.11 By김대진 Views12490
    Read More
  6. set 객체 정보까지 어떻게 검색합니까?

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

    Date2010.01.08 By혜승아빠 Views13510
    Read More
  8. 쿼리 확인 부탁 드립니다.

    Date2010.01.08 ByPhilip Park Views13491
    Read More
  9. 날짜 기본값 처리 방법 문의 드립니다.

    Date2010.01.07 ByPhilip Park Views16535
    Read More
  10. 쿼리의 물음표에 대해 문의드립니다.

    Date2010.01.06 By초보 Views19285
    Read More
  11. cubrid 설치전 php설치에서

    Date2010.01.03 By뚱기 Views14796
    Read More
  12. CUBRID 2008 R2.0에서 R2.1로 업그레이드 시

    Date2009.12.31 By차오이 Views12772
    Read More
  13. 형변환 오류 문의

    Date2009.12.30 By삽질중 Views16645
    Read More
  14. 큐브리드 메니저 데이터베이스검사시 에러문구

    Date2009.12.30 By까망이 Views12698
    Read More
  15. 데이터베이스 오류문제

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

    Date2009.12.28 By초보 Views24983
    Read More
  17. CUBRID 컨설팅을 받고 싶습니다.

    Date2009.12.28 By오004 Views6
    Read More
  18. 윈도우7+iis(7.5)+php5+cubrid에 xe 설치 후에 초기하면에 빨간색 글들.

    Date2009.12.26 ByHyuk-kwony Views23652
    Read More
  19. 큐브리드 매니저에서 엑셀 데이타 입력시 문제

    Date2009.12.26 By지니보이 Views14
    Read More
  20. 큐브리드에 데이타 타입 지정문제

    Date2009.12.26 By지니보이 Views23442
    Read More
  21. set type 문의

    Date2009.12.25 By초보 Views13418
    Read More
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