[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일 조회



