string()

값을 문자열로 변환하거나, 날짜 값을 지정한 형식의 문자열로 변환합니다.

문법

string(EXPR)
string(DATE_EXPR, DATE_FMT[, TIMEZONE])

str() 함수도 같은 기능을 제공합니다.

매개변수

EXPR
문자열로 변환할 값 또는 식.
DATE_EXPR
날짜 타입의 값 또는 식.
DATE_FMT
자바 SimpleDateFormat 클래스에 정의된 날짜 형식 문자열. 다음과 같은 날짜 지시자를 사용할 수 있습니다.

날짜 지시자

지시자설명예제
G기원 전/후AD
y달력 기준 연도2025 (yyyy); 25 (yy)
M월July (MMMM); Jul (MMM); 07 (MM), 7 (M)
w연 기준 몇 번째 주27 (해당 연도의 27번째 주)
W월 기준 몇 번째 주2 (해당 월의 두 번째 주)
D연 단위 일10
d월 단위 일189
E요일Tuesday (EEEE); Tue (E, EE, EEE)
F월 기준 몇 번째 요일2 (해당 월의 두 번째 요일)
u요일 숫자(1=월요일, …, 7=일요일)1
a오전/오후PM
H시간(0-23)0
k시간(1-24)24
K오전/오후 시간 (0-11)0
h오전/오후 시간 (1-12)12
m분30
s초55
S밀리초978
z시간대(일반 표기)Pacific Standard Time; PST
Z시간대(RFC 822 표기)-0800
X시간대(ISO 8601 표기)-08;-0800;08:00
TIMEZONE
출력에 사용할 시간대. "GMT+09", "GMT+0900", "GMT+09:00" 형식의 오프셋, "KST", "UTC", "PST" 등의 약어, 또는 IANA 시간대 ID를 사용할 수 있습니다. 시간대 약어는 Time Zone Abbreviations – Worldwide List를 참고하세요.

시간대 약어 예시

약어GMT 오프셋설명
UTCGMT+0협정 세계시
KSTGMT+9대한민국 표준시
CESTGMT+2중앙유럽 서머타임
MSKGMT+3모스크바 표준시
PSTGMT-7태평양 표준시
ESTGMT-5미국 동부 표준시

설명

string() 함수는 인수를 문자열로 변환하여 반환합니다. 인수가 null이면 null을 반환합니다.

타입별 변환 동작은 다음과 같습니다.

  • 날짜: DATE_FMT와 TIMEZONE을 적용하여 형식화합니다. DATE_FMT를 지정하지 않으면 "yyyy-MM-dd HH:mm:ss.SSS" 형식을 사용합니다.
  • IP 주소: getHostAddress()를 호출하여 문자열로 변환합니다.
  • 배열 또는 리스트: JSON 배열 형식(예: ["값1","값2",...])으로 반환합니다. 요소를 재귀적으로 직렬화하므로 중첩된 배열이나 맵도 JSON으로 변환됩니다. array()가 반환하는 것과 같은 객체 배열·리스트에 적용되며, binary()가 반환하는 byte[] 등 기본형 배열에는 적용되지 않습니다(toString() 결과가 그대로 반환됨).
  • 맵: JSON 객체 형식(예: {"키1":"값1","키2":"값2"})으로 반환합니다.
  • 배열·리스트·맵에 포함된 날짜 값: yyyy-MM-dd HH:mm:ssZ 형식의 문자열로 직렬화됩니다. 스칼라 날짜 값에 DATE_FMT/TIMEZONE을 적용하는 동작에는 영향이 없습니다.
  • 그 외: toString()을 호출합니다.

잘못된 날짜 형식 문자열을 지정하거나 유효하지 않은 시간대를 지정하면 쿼리 파싱 시점에 오류가 발생합니다.

오류 코드

오류 코드설명
90841유효하지 않은 시간대를 지정한 경우
90842잘못된 날짜 형식 문자열을 지정한 경우

사용 예

이 사용 예에서 조회하는 WEB_APACHE_SAMPLE 테이블을 준비하려면 쿼리 실습용 데이터를 참고하세요.

  1. HTTP 상태 코드(정수)를 문자열로 변환

    table limit=5 WEB_APACHE_SAMPLE | eval result = string(status) | fields status, result
    | # result: "200", "404" 등
    
  2. 날짜를 지정한 형식으로 변환

    table limit=5 WEB_APACHE_SAMPLE | eval result = string(_time, "yyyy-MM-dd HH:mm:ss") | fields _time, result
    | # result: "2024-11-18 17:40:25" 등
    
  3. 날짜를 특정 시간대로 변환

    table limit=5 WEB_APACHE_SAMPLE | eval result = string(_time, "yyyy-MM-dd HH:mm:ssZ", "UTC") | fields _time, result
    | # result: 지정한 시간대의 날짜 문자열
    
  4. NULL 입력

    json "{'val': null}" | eval result = string(val)
    | # result: null
    
  5. 배열을 JSON 형식으로 변환(4.0.2609.0부터 적용된 동작)

    json "{}" | eval arr = array("a", "b") | eval result = string(arr)
    | # result: ["a","b"]
    

    4.0.2609.0 이전에는 결과가 [a,b] 형식이었습니다. 이제는 JSON 배열 형식(["a","b"])으로 출력됩니다.

  6. 맵을 JSON 형식으로 변환(4.0.2609.0부터 적용된 동작)

    json "{'m': {'k': 'v', 'n': 1}}" | eval result = string(m)
    | # result: {"k":"v","n":1}
    

변경 이력

대상도입 릴리스
string() 함수소나 4.0 이전 버전
중첩 배열·리스트·맵을 JSON 형식으로 직렬화해 출력4.0.2609.0