본문 바로가기
IT/SQL 기초강좌 (PostgreSQL)

97강 SQL 함수 정리 : PostgreSQL TO_TIMESTAMP Function

by DoitSQL 2023. 2. 8.
728x90

 PostgreSQL 기초강의, PostgreSQL 기초강좌

97강 SQL 함수 정리 : PostgreSQL TO_TIMESTAMP Function   

 

SQL 함수 정리 97강 시작합니다.

 

이번 시간에는

 PostgreSQL TO_TIMESTAMP Function

에 대해서 알아보는 시간입니다.

 

이번 시간에는 PostgreSQL TO_TIMESTAMP() 함수를 사용하여 지정된 형식에 따라 문자열을 타임스탬프로 변환하는 방법을 배우게 됩니다.


PostgreSQL TO_TIMESTAMP 함수 소개   

PostgreSQL TO_TIMESTAMP() 함수는 지정된 형식에 따라 문자열을 타임스탬프로 변환합니다.

 

다음은 TO_TIMESTAMP() 함수의 구문을 보여줍니다:

TO_TIMESTAMP(text, format)  

 

TO_DATE() 함수는 두 개의 문자열 인수를 허용합니다. 

첫 번째 인수는 타임스탬프로 변환할 문자열입니다.

두 번째는 입력 형식입니다.

PostgreSQL TO_TIMESTAMP() 함수는 시간대가 포함된 타임스탬프를 반환합니다.

 

형식 문자열을 구성하려면 다음 템플릿 패턴을 사용하여 날짜 및 시간 값의 형식을 지정합니다.

Pattern Description
Y,YYY year in 4 digits with comma
YYYY year in 4 digits
YYY last 3 digits of year
YY last 2 digits of year
Y The last digit of year
IYYY ISO 8601 week-numbering year (4 or more digits)
IYY Last 3 digits of ISO 8601 week-numbering year
IY Last 2 digits of ISO 8601 week-numbering year
I Last digit of ISO 8601 week-numbering year
BC, bc, AD or ad Era indicator without periods
B.C., b.c., A.D. ora.d. Era indicator with periods
MONTH English month name in uppercase
Month Full capitalized English month name
month Full lowercase English month name
MON Abbreviated uppercase month name e.g., JAN, FEB, etc.
Mon Abbreviated capitalized month name e.g, Jan, Feb,  etc.
mon Abbreviated lowercase month name e.g., jan, feb, etc.
MM month number from 01 to 12
DAY Full uppercase day name
Day Full capitalized day name
day Full lowercase day name
DY Abbreviated uppercase day name
Dy Abbreviated capitalized day name
dy Abbreviated lowercase day name
DDD Day of year (001-366)
IDDD Day of ISO 8601 week-numbering year (001-371; day 1 of the year is Monday of the first ISO week)
DD Day of month (01-31)
D Day of the week, Sunday (1) to Saturday (7)
ID ISO 8601 day of the week, Monday (1) to Sunday (7)
W Week of month (1-5) (the first week starts on the first day of the month)
WW Week number of year (1-53) (the first week starts on the first day of the year)
IW Week number of ISO 8601 week-numbering year (01-53; the first Thursday of the year is in week 1)
CC Century e.g, 21, 22, etc.
J Julian Day (integer days since November 24, 4714 BC at midnight UTC)
RM Month in upper case Roman numerals (I-XII; >
rm Month in lowercase Roman numerals (i-xii; >
HH Hour of day (0-12)
HH12 Hour of day (0-12)
HH24 Hour of day (0-23)
MI Minute (0-59)
SS Second (0-59)
MS Millisecond (000-9999)
US Microsecond (000000-999999)
SSSS Seconds past midnight (0-86399)
AM, am, PM or pm Meridiem indicator (without periods)
A.M., a.m., P.M. or p.m. Meridiem indicator (with periods)

PostgreSQL TO_TIMESTAMP 예제   

다음 문은 TO_TIMESTAMP() 함수를 사용하여 문자열을 타임스탬프로 변환합니다:

SELECT TO_TIMESTAMP(
    '2017-03-31 9:30:20',
    'YYYY-MM-DD HH:MI:SS'
); 

결과

이 예에서

  • YYYY는 2017년의 네 자리 숫자
  • MM은 03월
  • DD는 31일
  • HH는 9시
  • MI는 30분
  • SS는 20초

Remarks   

고정 형식 글로벌 옵션(FX 접두사)을 사용하지 않는 한 TO_TIMESTAM() 함수는 입력 문자열의 공백을 건너뜁니다.

 

이 예에서는 입력 문자열에 여러 개의 공백을 사용합니다:

SELECT 
    TO_TIMESTAMP('2017     Aug', 'YYYY MON'); 

결과

그러나 다음 예에서는 오류를 반환합니다:

SELECT 
    TO_TIMESTAMP('2017     Aug', 'FXYYYY MON'); 

오류

FX 옵션은 TO_TIMESTAMP() 에게 입력 문자열을 하나의 공백으로만 받아들이도록 지시하기 때문입니다.


TO_TIMESTAMP() 함수는 최소한의 오류 검사로 입력 문자열의 유효성을 검사합니다. 입력 문자열을 가능한 한 유효한 타임스탬프로 변환하려고 시도하지만 때때로 예상치 못한 결과가 발생합니다.

 

다음 예제에서는 잘못된 타임스탬프 값을 사용합니다:

SELECT 
    TO_TIMESTAMP('2017-02-31 30:8:00', 'YYYY-MM-DD HH24:MI:SS'); 

오류


문자열을 타임스탬프로 변환할 때 TO_TIMESTAMP() 함수는 밀리초 또는 마이크로초를 소수점 이후의 초로 처리합니다.

SELECT 
    TO_TIMESTAMP('01-01-2017 10:2', 'DD-MM-YYYY SS:MS'); 

결과

이 예에서 2는 2밀리 초가 아니라 200입니다. 그것은 다음을 의미한다:

SELECT 
        TO_TIMESTAMP('01-01-2017 10:2', 'DD-MM-YYYY SS:MS'); 

SELECT 
        TO_TIMESTAMP('01-01-2017 10:200', 'DD-MM-YYYY SS:MS');   

같은 결과를 반환합니다.

결과

2밀리 초를 얻으려면 01-01-2017 10:002를 사용해야 합니다. 이 경우 002는 2밀리 초에 해당하는 0.002초로 해석됩니다.


연도가 4자리 미만이면 TO_TIMESTAMP()가 가장 가까운 연도로 조정합니다(예: 99는 1999, 17은 2017).

SELECT
    TO_TIMESTAMP('12 31 99 12:45', 'MM DD YY HH:MI'); 

결과

다음과 같은 예를 생각해 보십시오:

SELECT
      TO_TIMESTAMP('12 31 16 12:45', 'MM DD YY HH:MI'); 

가장 가까운 16년은 2016년이므로 다음 결과를 반환합니다:

결과


문자열을 타임스탬프로 변환하기 위해 PostgreSQL TO_TIMESTAMP() 함수를 사용하는 방법을 배웠습니다.

 

감사합니다.


본 강의는 PostgreSQL Tutorial을 참조합니다.  https://www.postgresqltutorial.com/
Do it! SQL을 찾아 주셔서 감사합니다. 공감 ♥ , 댓글이 큰 힘이 됩니다.

 

728x90

댓글