데이터베이스 및 SQL 도구

PostgreSQL 배열 파싱시간 간격까지 확인

배열이나 interval의 원래 값 하나를 붙여 넣고 구조와 필드를 확인하세요.

PostgreSQL 배열 파싱

PostgreSQL 원본 값

JSON 보고서

값은 현재 브라우저에서 처리하며 업로드, 데이터베이스 연결, 네트워크 요청을 하지 않습니다.

입력 옵션

SQL 바깥 따옴표와 캐스트 없이 원본 값을 입력하세요. NULL 이외의 배열 요소는 문자열로, 시간 간격 필드는 별도로 유지됩니다.

65,536문자 · 10,000요소 · 6차원 · 초는 소수점 아래 6자리까지

차원: 2 · 요소: 6 · NULL: 1

PostgreSQL 배열 파싱은 드라이버가 배열 대신 중괄호 문자열을 반환했을 때 유용합니다. 쉼표로 나누는 방법은 요소 안에 쉼표가 있거나 따옴표가 이스케이프된 순간부터 원래 데이터를 잘못 해석할 수 있습니다.

예제에서 NULL, 문자열 "NULL", 빈 문자열을 비교해 보세요. 시간 간격을 분석할 때는 원본 데이터베이스의 출력 형식을 먼저 선택해야 음수 부호가 적용되는 범위를 정확히 해석할 수 있습니다.

PostgreSQL 배열 파싱이 필요한 이유

인덱스의 시작점을 남깁니다

PostgreSQL 배열 파싱 결과에는 중첩 값과 함께 각 차원의 길이, 하한, 상한이 들어갑니다. 시작 인덱스가 0이거나 음수여도 메타데이터에 남으므로 JSON 배열만 보고 원래 좌표를 잘못 추측할 필요가 없습니다.

두 행과 세 열로 묶인 배열에서 결측값과 따옴표로 감싼 문자열이 구분된 모습

달력 단위와 시간 단위를 분리합니다

한 달을 항상 같은 초 단위로 환산할 수는 없습니다. interval 결과는 월, 일, 마이크로초를 독립적으로 유지합니다. 필드마다 부호가 다른 경우에도 이를 보존해 원본 의미를 확인할 수 있습니다.

시간 간격이 월 달력, 일 단위 칸, 정밀한 시계의 세 부분으로 나뉜 모습

놓치기 쉬운 설정부터 확인

01

형식을 바꿔도 원문은 유지됩니다

편집기 아래에서 배열 또는 시간 간격을 선택합니다. 형식 변경은 파서만 바꾸며 원문을 덮어쓰지 않습니다. 예제는 현재 형식에 맞는 내용을 미리 보여 주고, 적용해야 입력을 교체합니다.

02

차원과 부호부터 읽으세요

초기 예제의 첫 차원은 인덱스 0에서 시작합니다. dimensions와 nullCount를 확인하세요. sql_standard에서는 뒤에 별도의 부호가 없으면 맨 앞의 음수 부호가 일수와 시간에도 적용될 수 있습니다.

03

결과가 갱신되는 시점을 조절하세요

자동 파싱은 마지막 수정 후 350밀리초를 기다립니다. 끄면 실행 버튼이나 Ctrl/Cmd+Enter를 사용할 수 있습니다. 수정 즉시 내보내기는 비활성화됩니다. 긴 보고서는 100줄씩 표시하지만 복사와 저장에는 전체가 포함됩니다.

구조와 정밀도를 보존하는 기능

숫자처럼 보여도 문자열로 보존

배열 문자열의 001이나 큰 정수는 자동으로 숫자로 바꾸지 않습니다. 요소 타입 정보가 없는 상태에서 변환하면 앞자리 0이나 정밀도가 사라질 수 있습니다. 다차원 배열의 행 길이가 다르면 빈칸을 채우지 않고 오류를 표시합니다.

따옴표와 NULL 처리

요소 안의 쉼표, 이스케이프된 큰따옴표, 백슬래시, 보호된 공백을 함께 해석합니다. 따옴표도 이스케이프도 없는 NULL만 null로 바뀝니다. "NULL"과 빈 문자열은 서로 다른 문자열 값으로 남습니다.

출력 형식을 지정하는 interval 파싱

postgres, postgres_verbose, sql_standard, iso_8601 중 원본에 맞는 형식을 선택합니다. 달력 필드는 정수만, 초는 소수점 아래 여섯 자리까지 받습니다. 결과의 세 필드는 정확한 정수 연산을 거쳐 십진 문자열로 출력됩니다.

지원 문법과 처리 한도

SQL 바깥 포장을 제외하세요
배열은 {...}와 선택적 차원 선언, 시간 간격은 값 하나만 입력합니다. SQL 문, ARRAY 생성자, 바깥 작은따옴표, E-string, 캐스트, 필드 한정자는 지원하지 않습니다. 데이터베이스 연결, 파일 가져오기, URL 요청도 없습니다.
배열 구조만 검증합니다
기본 구분자는 쉼표이며 box 형식에는 세미콜론을 선택할 수 있습니다. 하한과 상한은 실제 크기와 맞아야 합니다. 비어 있는 중첩 배열은 0차원 빈 배열로 정리합니다. OID나 사용자 정의 구분자, array_nulls=off는 지원하지 않습니다.
시간 간격 문법은 제한됩니다
선택한 출력 형식과 비슷한 표기만 받습니다. 월·일·시·분의 소수, 무한값, ISO 대체 표기, 알 수 없는 단위, 단위가 없는 0 이외의 숫자는 거부합니다. 초의 소수 자릿수가 여섯 자리를 넘으면 반올림하지 않고 오류를 냅니다. 총 초나 Temporal 변환은 없습니다.
한도를 넘으면 내보내기를 중지합니다
입력은 JavaScript 문자 기준 65,536개, 배열 요소는 10,000개, 차원은 여섯 개까지입니다. 월과 일은 부호 있는 32비트, 마이크로초는 부호 있는 64비트 범위여야 합니다. 오류가 있으면 일부 결과만 잘라서 반환하지 않습니다.

PostgreSQL 배열 파싱 질문

PostgreSQL에서 malformed array literal 오류가 나는 이유는 무엇인가요?

중괄호나 따옴표가 닫히지 않았거나 끝에 구분자가 남아 있을 수 있습니다. SQL 문 전체를 붙여 넣은 경우도 확인하세요. 오류의 행과 열을 보고 원래 배열 값만 남긴 뒤 해당 줄의 따옴표와 백슬래시를 점검하면 됩니다.

PostgreSQL 배열에서 NULL은 어떻게 처리되나요?

따옴표와 이스케이프가 없는 NULL은 대소문자와 관계없이 JSON null이 됩니다. "NULL"은 텍스트이고 ""는 빈 문자열입니다. nullCount에는 null 요소의 개수가 나옵니다. SQL NULL 전체는 배열 값으로 받지 않으며 빈 배열은 {}로 표현합니다.

다차원 배열을 넣을 때 malformed array literal 오류가 나는 이유는 무엇인가요?

PostgreSQL의 각 차원은 길이가 같아야 합니다. {{a,b},{c}}처럼 첫 행과 둘째 행의 요소 수가 다르면 실패합니다. 도구는 빈 요소를 추가하거나 행을 펼치지 않습니다. 원본을 고친 다음 명시한 차원 경계도 실제 크기와 맞는지 확인하세요.

PostgreSQL COPY에서 큰따옴표가 들어 있는 배열은 어떻게 이스케이프하나요?

COPY 또는 CSV 필드의 바깥 인코딩과 배열 내부의 이스케이프는 별개의 단계입니다. 이 도구는 배열 내부만 처리합니다. 큰따옴표로 감싼 요소에서는 큰따옴표와 백슬래시 앞에 백슬래시를 붙입니다. 바깥 CSV나 SQL 문자열은 먼저 해제해야 합니다.

PostgreSQL interval을 초로 바꾸면 값이 예상과 다른 이유는 무엇인가요?

한 달의 일수는 일정하지 않고, 일광 절약 시간제가 바뀌는 날은 실제 경과 시간이 24시간과 다를 수 있습니다. 따라서 월과 일을 고정 환산율로 초에 합치면 기대와 다른 값이 나옵니다. 이 보고서는 세 필드를 유지하며 실제 경과 시간은 구체적인 날짜로 계산해야 합니다.

1 day 01:30:00을 25:30:00으로 표시할 수 있나요?

다른 SQL 처리에서 표시를 바꿀 수 있지만 이는 일수를 시간으로 합치는 작업입니다. 여기서는 1 day 01:30:00을 days="1", microseconds="5400000000"으로 유지합니다. 25:30:00만 입력하면 days="0", microseconds="91800000000"이므로 구조가 구분됩니다.

더 궁금한 점이 있나요?

다음 값을 확인하세요

PostgreSQL 배열 파싱으로 좌표와 요소를 확인하거나 interval 형식을 선택해 세 필드를 검토한 뒤 JSON을 저장하세요.

한 번에 값 하나를 분석하며 자동으로 고치지 않습니다.