DB

[PostgreSQL] 실무에서 많이 쓰는 :: 패턴 10가지

PostgreSQL에서 ::타입 캐스팅(type casting) 이고, 실무에서 정말 자주 쓰는 패턴들이 있어.
특히 로그 분석, 날짜 처리, JSON, 배열에서 많이 사용됨.

아래는 실무에서 많이 쓰는 :: 패턴 10가지야.


1️⃣ 문자열 → 숫자

문자열을 숫자로 변환

SELECT '100'::integer;
SELECT '99.5'::numeric;

실무 예

SELECT price::numeric * quantity
FROM order_table;

2️⃣ 문자열 → 날짜

문자열을 date로 변환

SELECT '2026-03-12'::date;

실무 예

WHERE create_dt::date = '2026-03-12'

3️⃣ timestamp → date

시간 제거하고 날짜만 비교

SELECT now()::date;

실무 예 (로그 조회)

WHERE access_time::date = current_date

4️⃣ 문자열 → timestamp

로그 문자열을 시간으로 변환

SELECT '20260312153011'::timestamp

하지만 보통은

TO_TIMESTAMP(insert_dtm,'YYYYMMDDHH24MISS')

5️⃣ timestamp → text

날짜를 문자열로 변환

SELECT now()::text;

실무 예

SELECT now()::text || ' 로그 시작'

6️⃣ JSON → JSONB

PostgreSQL에서 jsonb가 더 빠름

SELECT '{"name":"kim"}'::jsonb;

실무 예

SELECT data::jsonb ->> 'name'
FROM log_table;

7️⃣ 문자열 → 배열

배열 생성

SELECT '{1,2,3}'::int[];

실무 예

WHERE id = ANY('{1,2,3}'::int[])

8️⃣ text → uuid

UUID 타입 변환

SELECT '550e8400-e29b-41d4-a716-446655440000'::uuid;

실무 예

WHERE user_id = '550e8400-e29b-41d4-a716-446655440000'::uuid

9️⃣ boolean 변환

SELECT 'true'::boolean;
SELECT 'f'::boolean;

실무 예

WHERE is_active = 'true'::boolean

🔟 interval 생성 (시간 계산)

SELECT '1 day'::interval;
SELECT '3 hour'::interval;

실무 예

SELECT now() + '1 day'::interval;

로그 분석에서 가장 많이 쓰는 패턴 (너 케이스)

너가 쓰는 패턴은 보통 이렇게 정리됨

TO_TIMESTAMP(insert_dtm,'YYYYMMDDHH24MISS')::date

의미

문자열 → timestamp → date

SELECT
TO_TIMESTAMP(insert_dtm,'YYYYMMDDHH24MISS')::date
FROM access_log

PostgreSQL 고수들이 많이 쓰는 패턴 하나 더

날짜 범위

now()::date - 7

WHERE create_dt >= now()::date - 7

최근 7일 조회

Hi, I’m 관리자