PostgreSQL에서 형변환 함수와 날짜/시간 함수는 데이터 타입을 변환하거나 날짜 및 시간 값을 추출하고 조작하는 데 중요한 역할을 합니다. 이를 통해 다양한 형식으로 데이터를 처리하고 날짜와 시간을 필요한 방식으로 변환할 수 있습니다.


Type Conversion

형변환 함수는 SQL에서 한 데이터 타입을 다른 데이터 타입으로 변환하는 데 사용됩니다. 주로 데이터 간의 호환성을 맞추거나 출력 형식을 변경할 때 사용됩니다.

TO_CHAR()

TO_CHAR() 함수는 숫자나 날짜 데이터를 지정된 형식으로 문자열로 변환합니다. 주로 날짜나 숫자를 특정 형식으로 표시할 때 사용됩니다.

SELECT TO_CHAR('2024-04-30'::DATE, 'YYYY-MM-DD'); -- 날짜를 문자열 형식으로 변환

TO_TIMESTAMP()

TO_TIMESTAMP() 함수는 문자열로 입력된 날짜와 시간을 지정된 형식에 맞게 TIMESTAMP 타입으로 변환합니다.

SELECT TO_TIMESTAMP('2024-04-30 15:30:00', 'YYYY-MM-DD HH24:MI:SS'); -- 문자열을 날짜 형식으로 변환

CAST()

CAST() 함수는 한 데이터 타입을 다른 타입으로 변환하는 데 사용됩니다. TO_CHAR()와 유사하지만, CAST()는 주로 SQL 표준에 따라 타입을 변환합니다. :: 연산자로도 사용 가능합니다.

SELECT CAST('123' AS INTEGER); -- 문자열을 정수로 변환
SELECT '123'::INTEGER; -- 문자열을 정수로 변환

Date and Time

날짜 및 시간 함수는 날짜나 시간을 계산하고 추출하는 데 사용됩니다. 주로 날짜 차이 계산, 날짜 형식 변환, 현재 시간 및 날짜 조회 등에 사용됩니다.

CURRENT_DATE

CURRENT_DATE는 현재 날짜만 반환합니다. 시간은 제외하고 날짜만 필요할 때 사용됩니다.

SELECT CURRENT_DATE; -- 현재 날짜만 반환

-- 2024-04-30

NOW()

NOW() 함수는 현재 날짜와 시간을 반환합니다. 일반적으로 현재 시간을 기준으로 데이터를 처리하거나 기록할 때 사용됩니다.

SELECT NOW(); -- 현재 날짜와 시간 반환

-- 2024-04-30 15:30:00

EXTRACT()

EXTRACT() 함수는 날짜에서 특정 부분을 추출하는 데 사용됩니다. 예를 들어, 년, 월, 일 등을 추출할 수 있습니다.

SELECT EXTRACT(YEAR FROM '2024-04-30'::DATE); -- 연도 추출

-- 2024

DATE_TRUNC()

DATE_TRUNC()는 주어진 날짜 값을 원하는 단위(예: 연도, 월, 일 등)로 자르는 데 사용됩니다.

SELECT DATE_TRUNC('year', '2024-04-30'::DATE); -- 연도 단위로 자르기
SELECT DATE_TRUNC('month', '2024-04-30'::DATE); -- 월 단위로 자르기

-- 2024-01-01 00:00:00
-- 2024-04-01 00:00:00

References