문자열을 날짜/시간 타입으로 변환

날짜/시간 타입 문자열 권장 형식

문자열을 날짜/시간 타입으로 변환할 때에는 문자열을 다음과 같은 형식으로 작성하는 것을 권장한다.

DATE 문자열 허용 형식

[year sep] month sep day

구분자(sep)가 빗금(/)일 때에는 다음과 같은 순서로 인식한다.

month/day[/year]

구분자(sep)를 사용하지 않을 때에는 다음과 같은 형식으로 인식한다. 연도는 4자리까지 허용하고, 월은 2자리까지 허용한다. 일은 항상 2자리를 입력해야 한다.

[[[[Y]Y]YY]M]MDD

TIME 문자열 허용 형식

[hour]:min[:[sec]] [.[msec]] [am|pm]

[[[[[[Y]Y]Y]Y]M]MDD]HHMMSS[.[msec]] [am|pm]

[H]HMMSS[.[msec]] [am|pm]

[M]MSS[.[msec]] [am|pm]

[S]S[.[msec]] [am|pm]

참고 CUBRID 2008 R3.1 이하 버전에서는 [H]H 형식을 허용했다. 즉 R3.1 이하 버전에서 문자열 '10'은 TIME '10:00:00'으로 변환되었으나, R4.0부터는 TIME '00:00:10' 으로 변환된다.

시간-날짜 순서의 문자열 허용 형식

[hour]:min[:sec[.msec]] [am|pm] sep [year-]month-day

[hour]:min[:sec[.msec]] [am|pm] sep month/day[/[year]]

hour[:min[:sec[.[msec]]]] [am|pm] sep [year-]month-day

hour[:min[:sec[.[msec]]]] [am|pm] sep month/day[/[year]]

DATETIME 문자열 허용 형식

[year sep] month sep day [sep] [sep] hour [sep min[sep sec[.[msec]]]]

month/day[/year] [sep] hour [sep min [sep sec[.[msec]]]]

year sep month sep day sep hour [sep min[sep sec[.[msec]]]]

month/day/year sep hour [sep min[sep sec [.[msec]]]]

YYMMDDH (시간이 한 자리 수일 때에만 허용)

YYMMDDHHMM[SS[.msec]]

YYYYMMDDHHMMSS[.msec]

규칙

msec은 밀리초를 나타내는 일련의 숫자이다. 앞에서 네 번째 자리부터 이후의 숫자는 무시된다.

sep은 허용되는 구분자 문자열을 나타낸다. 구분자 문자열의 규칙은 다음과 같다.

날짜 부분의 문자열에는 다음 규칙이 적용된다.

CUBRID의 TIMESTAMP 타입은 DATE타입과 TIME 타입으로 구성되고, DATETIME 타입은 DATE 타입과 TIME 타입에 밀리초(milliseconds)가 더해져서 구성된다. 입력 문자열은 날짜(DATE 문자열), 시간(TIME 문자열), 혹은 둘 다(DATETIME 문자열) 포함할 수 있다. 특정 타입의 데이터를 보유한 문자열은 다른 타입으로도 변환될 수 있으며 다음과 같은 규칙이 적용된다.

예제

SELECT CAST('420' AS DATE);

 

   cast('420' as date)

======================

  04/20/2011

 

SELECT CAST('91015' AS TIME);

 

   cast('91015' as time)

========================

  09:10:15 AM

 

 

SELECT CAST('110420091035.359' AS DATETIME);

 

   cast('110420091035.359' as datetime)

=======================================

  09:10:35.359 AM 04/20/2011

 

SELECT CAST('110420091035.359' AS TIMESTAMP);

 

   cast('110420091035.359' as timestamp)

========================================

  09:10:35 AM 04/20/2011