함수 이름 | 매개변수 유형 | 반환 유형 |
AVG(expression) | INT,FLOAT,DECIMAL | 입력 매개변수가 정수 형식일 경우 DECIMAL을 반환하며 부동 소수점 형식일 경우 FLOAT를 반환합니다. 그 외의 상황에서는 반환 값과 입력 매개변수가 일치합니다. |
COUNT | - | INT |
MAX(expression) | INT,DECIMAL | 반환 값은 입력 매개변수와 일치합니다. |
MIN(expression) | INT, DECIMAL | 반환 값은 입력 매개변수와 일치합니다. |
SUM(expression) | INT, FLOAT, DOUBLE, DECIMAL | 입력 매개변수가 정수 형식일 경우 INT를 반환하며 부동 소수점 형식일 경우 FLOAT를 반환합니다. 그 외의 상황에서는 반환 값과 입력 매개변수가 일치합니다. |
COALESCE ( expression, expression, ... )
COALESCE(1) -- 1COALESCE(1, null) -- 1COALESCE(null, null, 1) -- 1COALESCE(missing, 1) -- 1COALESCE(null, 'string') -- 'string'COALESCE(null) -- nullCOALESCE(null, null) -- nullCOALESCE(missing) -- nullCOALESCE(missing, missing) -- null
NULLIF ( expression1, expression2 )
NULLIF(1, 2) -- 1NULLIF(1, '1') -- 1NULLIF(1, NULL) -- 1NULLIF(1, 1) -- nullNULLIF(1.0, 1) -- nullNULLIF(missing, null) -- nullNULLIF(missing, missing) -- nullNULLIF([1], [1]) -- nullNULLIF(NULL, 1) -- nullNULLIF(null, null) -- null
CAST ( expression AS data_type )
CAST('2007-04-05T14:30Z' AS TIMESTAMP)CAST(0.456 AS FLOAT)
DATE_ADD( date_part, quantity, timestamp )
DATE_ADD(year, 5, `2010-01-01T`) -- 2015-01-01DATE_ADD(month, 1, `2010T`) -- 2010-02TDATE_ADD(month, 13, `2010T`) -- 2011-02TDATE_ADD(hour, 1, `2017T`) -- 2017-01-01T01:00-00:00DATE_ADD(hour, 1, `2017-01-02T03:04Z`) -- 2017-01-02T04:04ZDATE_ADD(minute, 1, `2017-01-02T03:04:05.006Z`) -- 2017-01-02T03:05:05.006ZDATE_ADD(second, 1, `2017-01-02T03:04:05.006Z`) -- 2017-01-02T03:04:06.006Z
DATE_DIFF( date_part, timestamp1, timestamp2 )
DATE_DIFF(year, `2010-01-01T`, `2011-01-01T`) -- 1DATE_DIFF(year, `2010T`, `2010-05T`) -- 4DATE_DIFF(month, `2010T`, `2011T`) -- 12DATE_DIFF(month, `2011T`, `2010T`) -- -12DATE_DIFF(day, `2010-01-01T23:00T`, `2010-01-02T01:00T`) -- 0
EXTRACT( date_part FROM timestamp )
EXTRACT(YEAR FROM `2010-01-01T`) -- 2010EXTRACT(MONTH FROM `2010T`) -- 1EXTRACT(MONTH FROM `2010-10T`) -- 10EXTRACT(HOUR FROM `2017-01-02T03:04:05+07:08`) -- 3EXTRACT(MINUTE FROM `2017-01-02T03:04:05+07:08`) -- 4EXTRACT(TIMEZONE_HOUR FROM `2017-01-02T03:04:05+07:08`) -- 7EXTRACT(TIMEZONE_MINUTE FROM `2017-01-02T03:04:05+07:08`) -- 8
TO_STRING ( timestamp time_format_pattern )
포맷 | 설명 | 예시 |
yy | 연도 단위 2자리 수 | 98 |
y | 연도 단위 4자리 수 | 1998 |
yyyy | 연도 단위 고정 4자리 수, 부족한 부분은 0으로 보충 | 0199 |
M | 월 단위 | 1 |
MM | 월 단위 고정 2자리 수, 부족한 부분은 0으로 보충 | 01 |
MMM | 월 단위 영어 약어 | Jan |
MMMM | 월 단위 영어 전체 표기 | January |
MMMMM | 월 단위의 첫 글자 약어 | J(to_timestamp 함수에는 적합하지 않음) |
d | 한 달 중에 하루(1~31) | 1 |
dd | 일 수 중 고정 2자리 수(1~31) | 01 |
a | 오전 혹은 오후 표기(AM/PM) | AM |
h | 시간, 12시간제 | 1 |
hh | 시각 고정 2자리 수이며 12시간제 | 01 |
H | 시간, 24시간제 | 1 |
HH | 시각 고정 2자리 수이며 24시간제 | 01 |
m | 분(00-59) | 1 |
mm | 시간 고정 2자리 수이며 24시간제 | 01 |
s | 분(00-59) | 1 |
ss | 시각 고정 2자리 수이며 24시간제 | 01 |
S | 초의 소수 부분(정확도 0.1, 범위 0.0 - 0.9) | 0 |
SS | 초의 소수 부분(정확도 0.01, 범위 0.00 - 0.99) | 6 |
SSS | 초의 소수 부분(정확도 0.001, 범위 0.000 - 0.999) | 60 |
... | ... | ... |
SSSSSSSSS | 초의 소수 부분(정확도 0.000000001, 범위 0.000000000 - 0.999999999) | 60000000 |
n | 나노 초 | 60000000 |
X | 시간 단위 오프셋, 오프셋이 0이면 "Z"로 표시 | +01 혹은 Z |
XX 혹은 XXXX | 시간 혹은 분 단위 오프셋, 오프셋이 0이면 "Z"로 표시 | +0100 혹은 Z |
xxx 혹은 xxxxx | 시간 혹은 분 단위 오프셋, 오프셋이 0이면 "Z"로 표시 | +01:00 혹은 Z |
x | 시간 단위 오프셋 | 1 |
xx 혹은 xxxx | 시간 혹은 분 단위 오프셋 | 0100 |
xxx 혹은 xxxxx | 시간 혹은 분 단위 오프셋 | 01:00 |
TO_STRING(`1998-07-20T20:18Z`, 'MMMM d, y') -- "July 20, 1998"TO_STRING(`1998-07-20T20:18Z`, 'MMM d, yyyy') -- "Jul 20, 1998"TO_STRING(`1998-07-20T20:18Z`, 'M-d-yy') -- "7-20-69"TO_STRING(`1998-07-20T20:18Z`, 'MM-d-y') -- "07-20-1998"TO_STRING(`1998-07-20T20:18Z`, 'MMMM d, y h:m a') -- "July 20, 1998 8:18 PM"TO_STRING(`1998-07-20T20:18Z`, 'y-MM-dd''T''H:m:ssX') -- "1998-07-20T20:18:00Z"TO_STRING(`1998-07-20T20:18+08:00Z`, 'y-MM-dd''T''H:m:ssX') -- "1998-07-20T20:18:00Z"TO_STRING(`1998-07-20T20:18+08:00`, 'y-MM-dd''T''H:m:ssXXXX') -- "1998-07-20T20:18:00+0800"TO_STRING(`1998-07-20T20:18+08:00`, 'y-MM-dd''T''H:m:ssXXXXX') -- "1998-07-20T20:18:00+08:00"
TO_TIMESTAMP ( string )
TO_TIMESTAMP('2007T') -- `2007T`TO_TIMESTAMP('2007-02-23T12:14:33.079-08:00') -- `2007-02-23T12:14:33.079-08:00`
UTCNOW()
UTCNOW() -- 2019-01-01T14:23:12.123Z
CHAR_LENGTH ( string )
CHAR_LENGTH('null') -- 4CHAR_LENGTH('tencent') -- 7
LOWER ( string )
LOWER('TENcent') -- 'tencent'
SUBSTRING( string FROM start [ FOR length ] )
SUBSTRING("123456789", 0) -- "123456789"SUBSTRING("123456789", 1) -- "123456789"SUBSTRING("123456789", 2) -- "23456789"SUBSTRING("123456789", -4) -- "123456789"SUBSTRING("123456789", 0, 999) -- "123456789"SUBSTRING("123456789", 1, 5) -- "12345"
TRIM ( [[LEADING | TRAILING | BOTH remove_chars] FROM] string )
LEADING | TRAILING | BOTH
매개변수는 삭제할 문자열 앞(LEADING) 혹은 문자열 뒤(TRAILING) 혹은 두 곳 모두 삭제(BOTH)할 부분의 나머지 문자를 지정합니다.TRIM(' foobar ') -- 'foobar'TRIM(' \tfoobar\t ') -- '\tfoobar\t'TRIM(LEADING FROM ' foobar ') -- 'foobar'TRIM(TRAILING FROM ' foobar ') -- 'foobar'TRIM(BOTH FROM ' foobar ') -- 'foobar'TRIM(BOTH '12' FROM '1112211foobar22211122') -- 'foobar'
UPPER ( string )
UPPER('tenCENT') -- 'TENCENT'
문제 해결에 도움이 되었나요?