날짜 및 시간 작업용 함수
이 섹션의 대부분 함수는 Europe/Amsterdam과 같은 선택적 시간대 인수를 허용합니다. 이때 시간대는 로컬(기본) 시간대가 아니라 지정된 시간대가 됩니다.
예제
UTCTimestamp
도입 버전: v22.11
쿼리 분석 시점의 현재 날짜와 시간을 반환합니다. 이 함수는 상수 표현식입니다.
이 함수는 now('UTC')가 반환하는 것과 동일한 결과를 제공합니다. MySQL 지원을 위해 추가되었습니다. now 사용을 권장합니다.
구문
별칭: UTC_timestamp
인수
- 없음.
반환값
쿼리 분석 시점의 현재 날짜와 시간을 반환합니다. DateTime
예시
현재 UTC 타임스탬프 가져오기
YYYYMMDDToDate
도입 버전: v23.9
연, 월, 일을 나타내는 숫자를 Date로 변환합니다.
이 함수는 함수 toYYYYMMDD()의 역함수입니다.
입력이 유효한 Date 값을 나타내지 않으면 결과는 정의되지 않습니다.
구문
인수
반환 값
제공된 인수로부터 Date 값을 반환합니다. Date
예제
예제
YYYYMMDDToDate32
도입된 버전: v23.9
연, 월, 일을 나타내는 숫자를 Date32로 변환합니다.
이 함수는 함수 toYYYYMMDD()의 역함수입니다.
입력이 유효한 Date32 값을 인코딩하지 않으면 출력은 정의되지 않습니다.
구문
인수
반환 값
제공된 인수로부터 Date32 값을 반환합니다. Date32
예시
예시
YYYYMMDDhhmmssToDateTime
도입 버전: v23.9
연, 월, 일, 시, 분, 초를 포함하는 숫자 값을 DateTime으로 변환합니다.
이 함수는 함수 toYYYYMMDDhhmmss()의 역함수입니다.
입력이 유효한 DateTime 값을 나타내지 않는 경우 결과는 정의되지 않습니다.
구문
인수
반환 값
제공된 인수를 사용해 DateTime 값을 반환합니다. DateTime
예시
예시
YYYYMMDDhhmmssToDateTime64
도입 버전: v23.9
년, 월, 일, 시, 분, 초를 포함하는 숫자를 DateTime64로 변환합니다.
이 FUNCTION은 toYYYYMMDDhhmmss()의 역연산입니다.
입력이 유효한 DateTime64 값을 나타내지 않으면 결과는 정의되지 않습니다.
구문
인자
YYYYMMDDhhmmss— 연, 월, 일, 시, 분, 초를 포함하는 숫자.(U)Int*또는Float*또는Decimalprecision— 소수 부분의 자릿수 정밀도(0-9).UInt8timezone— 타임존 이름.String
반환 값
제공된 인자를 기반으로 DateTime64 값을 반환합니다. DateTime64
예시
예시
addDate
도입 버전: v23.9
제공된 date, date with time 값 또는 문자열로 인코딩된 date 혹은 date with time 값에 시간 간격을 더합니다. 연산 결과가 데이터 타입의 허용 범위를 벗어나는 경우 결과는 정의되지 않습니다.
구문
인수
datetime—interval을 더할 날짜 또는 날짜와 시간입니다.Date또는Date32또는DateTime또는DateTime64또는Stringinterval— 더할 인터벌입니다.Interval
반환 값
datetime에 interval을 더하여 얻은 날짜 또는 날짜와 시간을 반환합니다. Date 또는 Date32 또는 DateTime 또는 DateTime64
예시
날짜에 interval 추가하기
addDays
도입 버전: v1.1
지정한 일 수를 날짜, 날짜-시간 또는 문자열로 인코딩된 날짜/날짜-시간 값에 더합니다.
구문
인수(Arguments)
datetime— 지정된 일 수를 더할 기준이 되는 날짜 또는 날짜와 시간입니다.Date또는Date32또는DateTime또는DateTime64또는Stringnum— 더할 일 수입니다.(U)Int*또는Float*
반환 값(Returned value)
datetime 값에 num일을 더한 결과를 반환합니다. Date 또는 Date32 또는 DateTime 또는 DateTime64
예시(Examples)
서로 다른 날짜 타입에 일 수를 더하기
다른 INTERVAL 구문 사용
addHours
도입 버전: v1.1
날짜, 날짜-시간 또는 문자열로 인코딩된 날짜/날짜-시간 값에 지정된 시간 수를 더합니다.
구문
인수
datetime— 지정된 시간 수를 더할 날짜 또는 날짜와 시간입니다.Date또는Date32또는DateTime또는DateTime64또는Stringnum— 더할 시간(시간 단위)의 수입니다.(U)Int*또는Float*
반환값
datetime에 num시간을 더한 값을 반환합니다. 반환 타입은 DateTime 또는 DateTime64(3)입니다.
예시
서로 다른 날짜 타입에 시간 추가
INTERVAL의 대체 구문 사용하기
addInterval
도입 버전: v22.11
하나의 interval 또는 interval 튜플에 다른 interval을 더합니다.
동일한 타입의 interval은 하나의 interval로 합쳐집니다. 예를 들어 toIntervalDay(1)과 toIntervalDay(2)가 전달되면 결과는 (1,1)이 아니라 (3)이 됩니다.
구문
인자
interval_1— 첫 번째 간격 또는 간격의 튜플입니다.Interval또는Tuple(Interval)interval_2— 더할 두 번째 간격입니다.Interval
반환 값
간격의 튜플을 반환합니다. Tuple(Interval)
예시
간격 더하기
addMicroseconds
도입 버전: v22.6
일시 값 또는 문자열로 인코딩된 일시에 지정된 마이크로초 수를 더합니다.
구문
인수
datetime— 지정한 마이크로초 수를 더할 기준이 되는 날짜와 시각.DateTime또는DateTime64또는Stringnum— 더할 마이크로초 수.(U)Int*또는Float*
반환 값
date_time에 num 마이크로초를 더한 결과를 반환합니다. 반환 형식: DateTime64
예시
서로 다른 날짜/시간 타입에 마이크로초 더하기
대체 INTERVAL 구문 사용
addMilliseconds
도입 버전: v22.6
날짜-시간 값 또는 문자열로 인코딩된 날짜-시간 값에 지정된 밀리초 수를 더합니다.
구문
인수
datetime— 지정한 밀리초 수를 더할 날짜와 시간입니다.DateTime또는DateTime64또는Stringnum— 더할 밀리초 수입니다.(U)Int*또는Float*
반환 값
datetime에 num 밀리초를 더한 값을 반환합니다. 반환 타입은 DateTime64입니다.
예시
서로 다른 날짜/시간 타입에 밀리초 더하기
대체 INTERVAL 구문 형식 사용하기
addMinutes
도입 버전: v1.1
날짜, 날짜와 시간, 또는 이들이 문자열로 인코딩된 값에 지정한 분(minute) 수만큼을 더합니다.
구문
인수
datetime— 지정된 분 수를 더할 날짜 또는 날짜와 시간 값.Date또는Date32또는DateTime또는DateTime64또는Stringnum— 더할 분 수.(U)Int*또는Float*
반환 값
datetime에 num 분을 더한 값을 반환합니다. DateTime 또는 DateTime64(3)
예시
서로 다른 날짜/시간형에 분 추가하기
다른 INTERVAL 구문 사용
addMonths
도입 버전: v1.1
날짜, 날짜와 시간, 또는 문자열로 인코딩된 날짜나 날짜와 시간 값에 지정한 개월 수를 더합니다.
구문
인수
datetime— 지정된 개월 수를 더할 기준 날짜 또는 날짜와 시간.Date또는Date32또는DateTime또는DateTime64또는Stringnum— 더할 개월 수.(U)Int*또는Float*
반환 값
datetime 값에 num 개월을 더한 값을 반환합니다. Date 또는 Date32 또는 DateTime 또는 DateTime64
예시
서로 다른 날짜 타입에 개월 수 더하기
대체 INTERVAL 구문 사용
addNanoseconds
도입 버전: v22.6
날짜‑시간 값 또는 문자열로 인코딩된 날짜‑시간 값에 지정된 나노초를 더합니다.
구문
인수
datetime— 지정한 나노초를 더할 날짜와 시간입니다.DateTime또는DateTime64또는Stringnum— 더할 나노초 수입니다.(U)Int*또는Float*
반환 값
datetime에 num 나노초를 더한 값을 반환합니다. 반환 형식은 DateTime64입니다.
예시
서로 다른 날짜와 시간 타입에 나노초 더하기
다른 INTERVAL 구문 사용하기
addQuarters
도입: v20.1
날짜, 날짜‑시간 또는 문자열로 인코딩된 날짜나 날짜‑시간 값에 지정한 개수의 분기를 더합니다.
구문
인수(Arguments)
datetime— 지정한 개수의 분기를 더할 기준 날짜 또는 날짜 및 시간입니다.Date또는Date32또는DateTime또는DateTime64또는Stringnum— 더할 분기 수입니다.(U)Int*또는Float*
반환 값(Returned value)
datetime에 num 분기를 더한 값을 반환합니다. 반환 타입은 Date 또는 Date32 또는 DateTime 또는 DateTime64입니다.
예시(Examples)
서로 다른 날짜형에 분기 추가하기
대체 INTERVAL 구문 사용
addSeconds
도입 버전: v1.1
날짜, 날짜·시간 값, 또는 문자열로 인코딩된 날짜나 날짜·시간 값에 지정한 초(second) 수를 더합니다.
구문
인자
datetime— 지정된 초 수를 더할 날짜 또는 날짜와 시간 값입니다.Date또는Date32또는DateTime또는DateTime64또는Stringnum— 더할 초의 개수입니다.(U)Int*또는Float*
반환 값
datetime에 num 초를 더한 값을 반환합니다. DateTime 또는 DateTime64(3)
예시
서로 다른 날짜/시간 타입에 초 더하기
다른 INTERVAL 구문 사용
addTupleOfIntervals
도입 버전: v22.11
날짜 또는 날짜·시간 값에 기간 튜플(tuple of intervals)을 차례대로 더합니다.
구문
인수
datetime— 간격을 더할 대상이 되는 날짜 또는 날짜/시간입니다.Date또는Date32또는DateTime또는DateTime64intervals—datetime에 더할 간격들의 튜플입니다.Tuple(Interval)
반환 값
intervals가 더해진 date 값을 반환합니다. Date 또는 Date32 또는 DateTime 또는 DateTime64
예시
날짜에 간격 튜플 더하기
addWeeks
도입 버전: v1.1
날짜, 날짜‑시간 또는 문자열로 인코딩된 날짜나 날짜‑시간 값에 지정한 주 수를 더합니다.
구문
인수(Arguments)
datetime— 지정한 주 수를 더할 날짜 또는 날짜와 시간입니다.Date또는Date32또는DateTime또는DateTime64또는Stringnum— 더할 주(week)의 수입니다.(U)Int*또는Float*
반환 값(Returned value)
datetime에 num 주를 더한 값을 반환합니다. Date 또는 Date32 또는 DateTime 또는 DateTime64
예시(Examples)
서로 다른 날짜/시간 유형에 주(week) 더하기
대체 INTERVAL 구문 사용하기
addYears
도입: v1.1
지정한 연 수를 날짜, 날짜‑시간 값 또는 문자열로 인코딩된 날짜/날짜‑시간 값에 더합니다.
구문
인수
datetime— 지정된 년 수를 더할 날짜 또는 날짜와 시간입니다.Date또는Date32또는DateTime또는DateTime64또는Stringnum— 더할 년 수입니다.(U)Int*또는Float*
반환 값
datetime에 num 년을 더한 값을 반환합니다. 반환 형식은 Date 또는 Date32 또는 DateTime 또는 DateTime64입니다.
예시
서로 다른 날짜 타입에 년 수 더하기
다른 INTERVAL 구문 사용
age
도입된 버전: v23.1
startdate와 enddate 사이의 차이를 지정한 단위로 반환합니다.
차이는 1 나노초 단위의 정밀도로 계산됩니다.
예를 들어, 2021-12-29와 2022-01-01 사이의 차이는 일(day) 단위로 3일, 월(month) 단위로 0개월, 연(year) 단위로 0년입니다.
age의 대안으로는 함수 dateDiff를 참고하십시오.
구문
인수
unit— 결과를 표현할 간격 단위의 유형입니다.
| Unit | 가능한 값 |
|---|---|
| nanosecond | nanosecond, nanoseconds, ns |
| microsecond | microsecond, microseconds, us, u |
| millisecond | millisecond, milliseconds, ms |
| second | second, seconds, ss, s |
| minute | minute, minutes, mi, n |
| hour | hour, hours, hh, h |
| day | day, days, dd, d |
| week | week, weeks, wk, ww |
| month | month, months, mm, m |
| quarter | quarter, quarters, qq, q |
| year | year, years, yyyy, yy |
startdate— 뺄셈에서 빼는 값(감수)에 해당하는 첫 번째 시간 값입니다.Date또는Date32또는DateTime또는DateTime64enddate— 뺄셈에서 기준이 되는 값(피감수)에 해당하는 두 번째 시간 값입니다.Date또는Date32또는DateTime또는DateTime64timezone— 선택 사항입니다. 타임존 이름입니다. 지정된 경우startdate와enddate모두에 적용됩니다. 지정하지 않으면startdate와enddate각각의 타임존이 사용됩니다. 두 값의 타임존이 서로 다르면 결과는 정의되지 않습니다.String
반환 값
enddate와 startdate 사이의 차이를 unit 단위로 반환합니다. Int32
예시
시간 단위로 나이 계산
여러 단위로 나이 계산하기
changeDay
도입 버전: v24.7
Date 또는 DateTime 값의 일(day) 부분을 변경합니다.
구문
인수(Arguments)
date_or_datetime— 변경할 값입니다.Date또는Date32또는DateTime또는DateTime64value— 새 값입니다.(U)Int*
반환 값(Returned value)
date_or_datetime와 동일한 형식이면서 일(day) 부분이 변경된 값을 반환합니다. Date 또는 Date32 또는 DateTime 또는 DateTime64
예시(Examples)
사용 예시(Usage example)
changeHour
도입 버전: v24.7
날짜 또는 날짜-시간의 시(hour) 구성 요소를 변경합니다.
구문
인수
date_or_datetime— 변경할 값입니다.Date또는Date32또는DateTime또는DateTime64value— 새 값입니다.(U)Int*
반환 값
date_or_datetime와 동일한 타입의 값에서 시간(hour) 구성 요소가 변경된 값을 반환합니다. DateTime 또는 DateTime64
예시
사용 예시
changeMinute
도입 버전: v24.7
Date 또는 DateTime 값의 분(minute) 구성 요소를 변경합니다.
구문
인수
date_or_datetime— 변경할 값입니다.Date또는Date32또는DateTime또는DateTime64value— 새 값입니다.(U)Int*
반환 값
분(minute) 구성 요소가 수정된, date_or_datetime와 동일한 타입의 값을 반환합니다. DateTime 또는 DateTime64
예시
사용 예시
changeMonth
도입 버전: v24.7
날짜(Date) 또는 날짜-시간(DateTime) 값의 월(month) 부분을 변경합니다.
구문
인수
date_or_datetime— 변경할 값입니다.Date또는Date32또는DateTime또는DateTime64value— 새 값입니다.(U)Int*
반환 값
date_or_datetime와 동일한 타입으로, 월(month) 구성 요소가 변경된 값을 반환합니다. Date 또는 Date32 또는 DateTime 또는 DateTime64
예시
사용 예시
changeSecond
도입 버전: v24.7
날짜 또는 날짜‑시간 값에서 초(second) 구성 요소를 변경합니다.
구문
인수
date_or_datetime— 변경할 값입니다.Date또는Date32또는DateTime또는DateTime64value— 새 값입니다.(U)Int*
반환 값
date_or_datetime와 동일한 타입의 값으로, 초 부분이 수정된 값을 반환합니다. DateTime 또는 DateTime64
예시
사용 예시
changeYear
도입 버전: v24.7
날짜나 날짜-시간 값의 연도 부분을 변경합니다.
구문
인수
date_or_datetime— 변경할 값입니다.Date또는Date32또는DateTime또는DateTime64value— 새 값입니다.(U)Int*
반환 값
date_or_datetime와 동일한 타입의 값으로, 연도 부분이 변경된 값을 반환합니다. Date 또는 Date32 또는 DateTime 또는 DateTime64
예시
사용 예시
dateDiff
도입 버전: v23.4
지정된 unit 경계를 startdate와 enddate 사이에서 몇 번 넘는지에 대한 개수를 반환합니다.
차이는 상대 단위를 사용하여 계산합니다. 예를 들어, 2021-12-29와 2022-01-01 사이의 차이는 unit이 day인 경우 3일
(toRelativeDayNum 참조), unit이 month인 경우 1개월(toRelativeMonthNum 참조), unit이 year인 경우 1년
(toRelativeYearNum 참조)입니다.
unit으로 week가 지정되면, dateDiff는 주의 시작이 월요일이라고 가정합니다.
이 동작은 기본적으로 주가 일요일에 시작되는 toWeek() FUNCTION과는 다르다는 점에 유의하십시오.
dateDiff의 대안으로는 age FUNCTION을 사용할 수 있습니다.
구문
별칭(Aliases): timestampDiff, TIMESTAMP_DIFF, DATE_DIFF, date_diff, timestamp_diff
인수(Arguments)
unit— 결과 간격의 단위입니다.
| Unit | 가능한 값 |
|---|---|
| nanosecond | nanosecond, nanoseconds, ns |
| microsecond | microsecond, microseconds, us, u |
| millisecond | millisecond, milliseconds, ms |
| second | second, seconds, ss, s |
| minute | minute, minutes, mi, n |
| hour | hour, hours, hh, h |
| day | day, days, dd, d |
| week | week, weeks, wk, ww |
| month | month, months, mm, m |
| quarter | quarter, quarters, qq, q |
| year | year, years, yyyy, yy |
startdate— 처음에 빼는 시간 값(감수)입니다.Date또는Date32또는DateTime또는DateTime64enddate— 여기에서 값을 빼는 두 번째 시간 값(피감수)입니다.Date또는Date32또는DateTime또는DateTime64timezone— 선택 사항입니다. 시간대 이름입니다. 지정하면startdate와enddate모두에 적용됩니다. 지정하지 않으면startdate와enddate의 시간대를 사용합니다. 둘이 동일하지 않으면 결과는 정의되지 않습니다.String
반환 값
enddate와 startdate 사이의 차이를 unit 단위로 반환합니다. Int64
예시
시간(시간 단위)으로 날짜 차이 계산
여러 단위로 날짜 차이 계산
dateName
도입된 버전: v21.7
날짜에서 지정한 부분을 반환합니다.
허용되는 값:
- 'year'
- 'quarter'
- 'month'
- 'week'
- 'dayofyear'
- 'day'
- 'weekday'
- 'hour'
- 'minute'
- 'second'
구문
인자
date_part— 추출하려는 날짜의 부분입니다.Stringdatetime— 날짜 또는 시간 정보를 포함한 날짜 값입니다.Date또는Date32또는DateTime또는DateTime64timezone— 선택 사항입니다. 시간대입니다.String
반환 값
지정된 날짜 부분을 반환합니다. String
예시
서로 다른 날짜 구성 요소 추출
dateTrunc
도입: v20.8
날짜/시간 값을 지정된 날짜 부분까지 잘라냅니다.
구문
별칭: DATE_TRUNC
인수
unit— 결과를 어떤 간격 단위로 절삭할지 지정합니다. 가능한 값:nanosecond(DateTime64에서만 사용),microsecond(DateTime64에서만 사용),millisecond(DateTime64에서만 사용),second,minute,hour,day,week,month,quarter,year.Stringdatetime— 날짜와 시간입니다.Date또는Date32또는DateTime또는DateTime64timezone— 선택 사항입니다. 반환되는 datetime에 사용할 시간대 이름입니다. 지정하지 않으면 함수는datetime매개변수의 시간대를 사용합니다.String
반환 값
절삭된 날짜와 시간 값을 반환합니다.
| Unit Argument | datetime Argument | Return Type |
|---|---|---|
| Year, Quarter, Month, Week | Date32 or DateTime64 or Date or DateTime | Date32 or Date |
| Day, Hour, Minute, Second | Date32, DateTime64, Date, or DateTime | DateTime64 or DateTime |
| Millisecond, Microsecond, | Any | DateTime64 |
| Nanosecond | 스케일 3, 6, 9 중 하나 |
예시
시간대를 지정하지 않고 절삭
지정된 시간대를 사용한 내림 처리
formatDateTime
도입된 버전: v1.1
지정된 형식 문자열에 따라 날짜 또는 날짜·시간을 포맷합니다. format은 상수 표현식이므로 하나의 결과 컬럼에 여러 형식을 사용할 수 없습니다.
formatDateTime은 MySQL datetime 형식 스타일을 사용합니다. 자세한 내용은 mysql docs를 참고하십시오.
이 함수의 역연산은 parseDateTime입니다.
치환 필드를 사용하여 결과 문자열에 대한 패턴을 정의할 수 있습니다.
아래 표의 예시 컬럼은 2018-01-02 22:33:44에 대한 포맷 결과를 보여줍니다.
치환 필드:
| Placeholder | 설명 | 예시 |
|---|---|---|
| %a | 요일 이름 약어 (Mon-Sun) | Mon |
| %b | 월 이름 약어 (Jan-Dec) | Jan |
| %c | 월을 정수형 숫자(01-12)로 표시 | 01 |
| %C | 연도를 100으로 나누고 정수로 절단한 값 (00-99) | 20 |
| %d | 0으로 채운 일자(01-31) | 02 |
| %D | 짧은 MM/DD/YY 형식 날짜, %m/%d/%y와 동일 | 01/02/18 |
| %e | 공백으로 채운 일자(1-31) | 2 |
| %f | 초 단위의 소수부 | 123456 |
| %F | 짧은 YYYY-MM-DD 형식 날짜, %Y-%m-%d와 동일 | 2018-01-02 |
| %g | ISO 8601에 맞춘 2자리 연도 형식 | 18 |
| %G | ISO 주 번호용 4자리 연도 형식 | 2018 |
| %h | 12시간제 시(01-12) | 09 |
| %H | 24시간제 시(00-23) | 22 |
| %i | 분(00-59) | 33 |
| %I | 12시간제 시(01-12) | 10 |
| %j | 연중 일수(001-366) | 002 |
| %k | 24시간제 시(00-23) | 14 |
| %l | 12시간제 시(01-12) | 09 |
| %m | 월을 정수형 숫자(01-12)로 표시 | 01 |
| %M | 전체 월 이름 (January-December) | January |
| %n | 개행 문자 | |
| %p | AM 또는 PM 표기 | PM |
| %Q | 분기(1-4) | 1 |
| %r | 12시간제 HH:MM AM/PM 시간, %h:%i %p와 동일 | 10:30 PM |
| %R | 24시간제 HH:MM 시간, %H:%i와 동일 | 22:33 |
| %s | 초(00-59) | 44 |
| %S | 초(00-59) | 44 |
| %t | 수평 탭 문자 | |
| %T | ISO 8601 시간 형식 (HH:MM:SS), %H:%i:%S와 동일 | 22:33:44 |
| %u | 월요일을 1로 하는 ISO 8601 요일 번호(1-7) | 2 |
| %V | ISO 8601 주 번호(01-53) | 01 |
| %w | 일요일을 0으로 하는 요일 번호(0-6) | 2 |
| %W | 전체 요일 이름 (Monday-Sunday) | Monday |
| %y | 연도의 마지막 두 자리(00-99) | 18 |
| %Y | 연도 | 2018 |
| %z | UTC로부터의 시차, +HHMM 또는 -HHMM | -0500 |
| %% | '%' 기호 | % |
- ClickHouse v23.4 이전 버전에서는 포맷 대상 값이 Date, Date32, DateTime(초 소수부 없음) 또는 정밀도가 0인 DateTime64인 경우
%f가 0 한 자리(0)만 출력합니다. - ClickHouse v25.1 이전 버전에서는
%f가 고정 6자리가 아니라 DateTime64의 스케일에 지정된 자리수만큼 숫자를 출력합니다. - ClickHouse v23.4 이전 버전에서는
%M이 전체 월 이름(January-December)이 아니라 분(00-59)을 출력합니다.
구문
별칭: DATE_FORMAT
인수
datetime— 형식을 지정할 날짜 또는 날짜-시간 값입니다.Date또는Date32또는DateTime또는DateTime64format— 치환 필드를 포함한 형식 문자열입니다.Stringtimezone— 선택 사항입니다. 형식이 적용된 시간에 사용할 시간대 이름입니다.String
반환 값
지정된 형식에 따라 시간과 날짜 값을 반환합니다. String
예시
연도 자리표시자를 사용하여 날짜 형식 지정하기
소수 초를 포함해 DateTime64 포맷하기
타임존을 포함해 포맷하기
formatDateTimeInJodaSyntax
도입 버전: v20.1
formatDateTime와 유사하지만, MySQL 스타일 대신 Joda 스타일로 날짜-시간(datetime)을 포맷합니다. Joda Time 설명서를 참조하십시오.
이 함수의 반대 동작을 수행하는 함수는 parseDateTimeInJodaSyntax입니다.
치환 필드를 사용하여 결과 문자열의 패턴을 정의할 수 있습니다.
치환 필드:
| Placeholder | 설명 | 표시 형식 | 예시 |
|---|---|---|---|
| G | 연대(era) | 텍스트 | AD |
| C | 연대의 세기(>=0) | 숫자 | 20 |
| Y | 연대의 연도(>=0) | 연도 | 1996 |
| x | weekyear(아직 지원되지 않음) | 연도 | 1996 |
| w | weekyear의 주(아직 지원되지 않음) | 숫자 | 27 |
| e | 요일 | 숫자 | 2 |
| E | 요일 | 텍스트 | Tuesday; Tue |
| y | 연도 | 연도 | 1996 |
| D | 연중 일수(day of year) | 숫자 | 189 |
| M | 월 | 월 | July; Jul; 07 |
| d | 월중 일(day of month) | 숫자 | 10 |
| a | 오전/오후(halfday of day) | 텍스트 | PM |
| K | halfday의 시각(0~11) | 숫자 | 0 |
| h | halfday의 시각(1~12, clockhour) | 숫자 | 12 |
| H | 하루의 시각(0~23) | 숫자 | 0 |
| k | 하루의 시각(1~24, clockhour) | 숫자 | 24 |
| m | 분 | 숫자 | 30 |
| s | 초 | 숫자 | 55 |
| S | 초의 분수 부분 | 숫자 | 978 |
| z | 시간대 | 텍스트 | Eastern Standard Time; EST |
| Z | 시간대 오프셋 | zone | -0800; -0812 |
| ' | 텍스트 이스케이프 | 구분 기호 | |
| '' | 작은따옴표 | 리터럴 | ' |
구문
인수
datetime— 형식을 지정할 날짜 또는 날짜‑시간 값.DateTime또는Date또는Date32또는DateTime64format— Joda 스타일 치환 필드를 사용하는 형식 문자열.Stringtimezone— 선택 사항. 형식화된 시간에 사용할 타임존 이름.String
반환 값
지정된 형식에 따라 시간과 날짜 값을 반환합니다. String
예제
Joda 구문을 사용하여 datetime 형식 지정
fromDaysSinceYearZero
도입된 버전: v23.11
0000년 1월 1일 이후 경과한 일 수가 주어지면, ISO 8601에서 정의한 프로렙틱 그레고리력(proleptic Gregorian calendar)에 따른 해당 날짜를 반환합니다.
계산 방식은 MySQL의 FROM_DAYS() FUNCTION과 동일합니다. 결과가 Date 타입의 범위 내에서 표현될 수 없는 경우, 결과는 정의되지 않습니다.
구문
별칭: FROM_DAYS
인수
days— 0년(Year 0) 이후 경과한 일 수입니다.UInt32
반환 값
0년(Year 0) 이후 경과한 일 수에 해당하는 날짜를 반환합니다. Date
예시
0년(Year 0) 이후 경과한 일 수를 날짜로 변환하기
fromDaysSinceYearZero32
도입 버전: v23.11
0000년 1월 1일 이후 경과한 일 수가 주어지면, ISO 8601에서 정의한 선형 그레고리력(proleptic Gregorian calendar)에서 해당하는 날짜를 반환합니다.
계산은 MySQL의 FROM_DAYS() FUNCTION과 동일합니다. 결과가 Date32 타입의 범위 내에서 표현될 수 없는 경우 결과는 정의되지 않습니다.
구문
인수
days— 기준 연도(0년)부터 경과한 일 수입니다.UInt32
반환 값
기준 연도(0년)부터 경과한 일 수에 해당하는 날짜를 반환합니다. Date32
예시
기준 연도(0년)부터의 일 수를 날짜로 변환
fromModifiedJulianDay
도입 버전: v21.1
Modified Julian Day 숫자를 선행 그레고리력(Proleptic Gregorian calendar)의 텍스트 형식 YYYY-MM-DD인 날짜로 변환합니다. 이 함수는 -678941부터 2973483까지의 날짜 번호를 지원합니다(각각 0000-01-01과 9999-12-31을 의미합니다). 지원 범위를 벗어난 날짜 번호가 주어지면 예외를 발생시킵니다.
구문
인수
day— Modified Julian Day 숫자.(U)Int*
반환 값
텍스트 형식의 날짜를 반환합니다. String
예제
Modified Julian Day 값을 날짜로 변환
fromModifiedJulianDayOrNull
도입 버전: v21.1
fromModifiedJulianDay()와 유사하지만, 예외를 발생시키는 대신 NULL을 반환합니다.
구문
인수
day— 수정 율리우스일(Modified Julian Day) 숫자.(U)Int*
반환 값
day 인수가 유효한 경우 해당 날짜를 텍스트 형식으로 반환하고, 그렇지 않으면 null을 반환합니다. Nullable(String)
예시
널 값 처리를 포함하여 수정 율리우스일을 날짜로 변환
fromUTCTimestamp
도입된 버전: v22.1
UTC 시간대의 날짜 또는 날짜와 시간 값을 지정된 시간대의 날짜 또는 날짜와 시간 값으로 변환합니다. 이 함수는 주로 Apache Spark 및 유사한 프레임워크와의 호환성을 위해 포함되어 있습니다.
구문
별칭(Aliases): from_utc_timestamp
인수(Arguments)
datetime— 날짜 또는 날짜와 시간을 포함한 상수 값이나 표현식입니다.DateTime또는DateTime64time_zone— 시간대를 나타내는String타입의 상수 값 또는 표현식입니다.String
반환 값(Returned value)
지정된 시간대의 DateTime/DateTime64 값을 반환합니다. DateTime 또는 DateTime64
예시(Examples)
UTC 시간대를 지정한 시간대로 변환
fromUnixTimestamp
도입 버전: v20.8
이 FUNCTION은 Unix 타임스탬프를 달력 날짜와 하루 중 시간으로 변환합니다.
다음 두 가지 방식으로 호출할 수 있습니다.
- 인자가 하나이고 타입이
Integer인 경우,DateTime타입 값을 반환합니다. 즉,toDateTime처럼 동작합니다. - 인자가 두 개 또는 세 개인 경우, 첫 번째 인자가
Integer,Date,Date32,DateTime또는DateTime64타입의 값이고, 두 번째 인자가 상수 형식 문자열이며, 세 번째 인자가 선택적인 상수 시간대 문자열이면 FUNCTION은String타입의 값을 반환합니다. 즉,formatDateTime처럼 동작합니다. 이때 MySQL의 datetime 형식 스타일을 사용합니다.
구문
별칭(Aliases): FROM_UNIXTIME
인수(Arguments)
timestamp— Unix 타임스탬프 또는 날짜/날짜와 시간 값.(U)Int*또는Date또는Date32또는DateTime또는DateTime64format— 선택 사항. 출력 형식을 지정하는 상수 형식 문자열입니다.Stringtimezone— 선택 사항. 시간대를 나타내는 상수 문자열입니다.String
반환 값(Returned value)
하나의 인수로 호출되면 해당 타임스탬프의 DateTime 값을 반환하고, 두 개 또는 세 개의 인수로 호출되면 String 값을 반환합니다. DateTime 또는 String
예시(Examples)
Unix 타임스탬프를 DateTime으로 변환
형식을 지정하여 Unix 타임스탬프 변환
fromUnixTimestampInJodaSyntax
도입 버전: v23.1
이 FUNCTION은 Unix 타임스탬프를 달력 날짜와 하루 중 시간으로 변환합니다.
다음 두 가지 방식으로 호출할 수 있습니다.
Integer 타입의 인수를 하나만 전달하면 DateTime 타입의 값을 반환하며, 즉 toDateTime과 동일하게 동작합니다.
첫 번째 인수가 Integer, Date, Date32, DateTime 또는 DateTime64 타입의 값이고, 두 번째 인수가 상수 형식 문자열이며, 세 번째 인수가 선택적인 상수 시간대 문자열인 두 개 또는 세 개의 인수를 전달하는 경우, FUNCTION은 String 타입의 값을 반환하며, 즉 formatDateTimeInJodaSyntax와 동일하게 동작합니다. 이때 Joda 날짜-시간 형식 스타일을 사용합니다.
구문
인수
timestamp— Unix 타임스탬프 또는 날짜/시간 값.(U)Int*또는Date또는Date32또는DateTime또는DateTime64format— 선택 사항입니다. 출력 형식을 위한 Joda 구문을 사용하는 상수 형식 문자열입니다.Stringtimezone— 선택 사항입니다. 상수 시간대 문자열입니다.String
반환 값
하나의 인수로 호출되면 시간 정보가 포함된 날짜를 반환하고, 두 개 또는 세 개의 인수로 호출되면 String을 반환합니다.} DateTime 또는 String
예시
Joda 형식을 사용하여 Unix 타임스탬프를 변환
makeDate
도입된 버전: v22.6
다음 입력을 사용하여 Date를 생성합니다:
- 연도, 월, 일
- 연도와 연중 일(day of year)
구문
인수
year— 연도 값.(U)Int*또는Float*또는Decimalmonth— 월 (1-12).(U)Int*또는Float*또는Decimalday— 월의 날짜 (1-31).(U)Int*또는Float*또는Decimalday_of_year— 연중 날짜 (1-365).(U)Int*또는Float*또는Decimal
반환 값
제공된 인수로부터 구성한 Date 값을 반환합니다. Date
예시
연, 월, 일로 Date 생성
연도와 연중 일수를 이용한 날짜 생성
makeDate32
도입 버전: v22.6
다음 입력으로부터 Date32 값을 생성합니다.
- 연, 월, 일
- 연, 연중 날짜(day of year)
구문
인자
year— 연도.(U)Int*또는Float*또는Decimalmonth— 월 (1-12).(U)Int*또는Float*또는Decimalday— 월의 일 (1-31).(U)Int*또는Float*또는Decimalday_of_year— 연중 일수 (1-365).(U)Int*또는Float*또는Decimal
반환 값
제공된 인자로부터 구성한 Date32 값을 반환합니다. Date32
예시
연, 월, 일로부터 Date32 생성
연도와 연중 일(day of year)로 Date32 생성
makeDateTime
도입 버전: v22.6
연, 월, 일, 시, 분, 초와 선택적 타임존을 사용하여 DateTime을 생성합니다.
구문
인수
year— 연도.(U)Int*또는Float*또는Decimalmonth— 월 번호(1-12).(U)Int*또는Float*또는Decimalday— 일(1-31).(U)Int*또는Float*또는Decimalhour— 시(0-23).(U)Int*또는Float*또는Decimalminute— 분(0-59).(U)Int*또는Float*또는Decimalsecond— 초(0-59).(U)Int*또는Float*또는Decimaltimezone— 시간대 이름.String
반환 값
제공된 인수로 구성된 DateTime 값을 반환합니다. DateTime
예시
연, 월, 일, 시, 분, 초를 사용해 DateTime 생성
makeDateTime64
도입된 버전: v22.6
year, month, day, hour, minute, second 값과 선택적인 fraction, precision, timezone 값을 사용하여 DateTime64를 생성합니다.
구문
인자
year— 연도 값.(U)Int*또는Float*또는Decimalmonth— 월 값 (1-12).(U)Int*또는Float*또는Decimalday— 일 (1-31).(U)Int*또는Float*또는Decimalhour— 시 (0-23).(U)Int*또는Float*또는Decimalminute— 분 (0-59).(U)Int*또는Float*또는Decimalsecond— 초 (0-59).(U)Int*또는Float*또는Decimalfraction— 초의 소수 부분.(U)Int*또는Float*또는Decimalprecision— 소수 부분의 정밀도 (0-9).UInt8timezone— 시간대 이름.String
반환 값
제공된 인자들로부터 구성된 DateTime64 값을 반환합니다. DateTime64
예시
year, month, day, hour, minute, second 값으로부터 DateTime64 생성
monthName
도입된 버전: v22.1
날짜 또는 날짜-시간(DateTime) 값에서 월 이름을 문자열로 반환합니다.
구문
인수
datetime— 날짜 또는 날짜와 시간입니다.Date또는Date32또는DateTime또는DateTime64
반환 값
월 이름을 반환합니다. String
예제
날짜에서 월 이름 구하기
now
도입된 버전: v1.1
쿼리 분석 시점에 현재 날짜와 시간을 반환합니다. 이 함수는 상수 표현식입니다.
구문
별칭: current_timestamp
인수
timezone— 선택입니다. 반환되는 값의 시간대 이름입니다.String
반환 값
현재 날짜와 시간을 반환합니다. DateTime
예제
시간대를 지정하지 않은 쿼리
타임존을 지정하여 쿼리하기
now64
도입된 버전: v20.1
쿼리 분석 시점의 현재 날짜와 시간을 하위 초 단위(서브초) 정밀도로 반환합니다. 이 함수는 상수 표현식입니다.
구문
인수
scale— 선택 사항. 틱 크기(정밀도): 10^-scale 초입니다. 유효 범위: [0 : 9]. 일반적으로 3(기본값, 밀리초), 6(마이크로초), 9(나노초)를 사용합니다.UInt8timezone— 선택 사항. 반환 값의 시간대 이름입니다.String
반환 값
현재 날짜와 시간을 초 단위 이하 정밀도로 반환합니다. DateTime64
예시
기본 및 사용자 정의 정밀도를 사용하는 쿼리
nowInBlock
도입된 버전: v22.8
각 데이터 블록을 처리하는 시점의 현재 날짜와 시간을 반환합니다. 함수 now와 달리 상수 표현식이 아니므로, 장시간 실행되는 쿼리에서는 블록마다 반환값이 달라집니다.
장시간 실행되는 INSERT SELECT 쿼리에서 현재 시간을 생성하는 용도로 이 함수를 사용하는 것이 적합합니다.
구문
인수
timezone— 선택 사항입니다. 반환 값에 사용할 시간대 이름입니다.String
반환 값
각 데이터 블록을 처리할 때의 현재 날짜와 시간을 반환합니다. DateTime
예제
now() 함수와의 차이점
nowInBlock64
도입 버전: v25.8
각 데이터 블록을 처리하는 시점의 현재 날짜와 시간을 밀리초 단위로 반환합니다. 함수 now64와 달리 상수 표현식이 아니며, 장시간 실행되는 쿼리에서는 블록마다 반환 값이 달라집니다.
장시간 실행되는 INSERT SELECT 쿼리에서 현재 시간을 생성하는 용도로 이 함수를 사용하는 것이 좋습니다.
구문
인수
scale— 선택 사항입니다. 틱 크기(정밀도): 10^-정밀도 초입니다. 유효 범위: [0 : 9]. 일반적으로 사용하는 값은 3(기본값, 밀리초), 6(마이크로초), 9(나노초)입니다.UInt8timezone— 선택 사항입니다. 반환 값의 시간대 이름입니다.String
반환 값
각 데이터 블록을 처리하는 시점의 현재 날짜와 시간을 초 미만 단위의 정밀도로 반환합니다. DateTime64
예제
now64() 함수와의 차이점
serverTimezone
도입 버전: v23.6
서버의 타임존, 즉 timezone 설정 값을 반환합니다.
함수가 분산 테이블 컨텍스트에서 실행되는 경우에는 각 세그먼트에 해당하는 값이 들어 있는 일반 컬럼을 생성합니다. 그렇지 않은 경우 상수 값을 생성합니다.
구문
별칭: serverTimeZone
인수
- 없음.
반환 값
서버 시간대를 String 형식으로 반환합니다.
예제
사용 예제
subDate
도입 버전: v23.9
지정된 날짜, 시간 정보가 있는 날짜 또는 문자열로 인코딩된 날짜/날짜-시간 값에서 시간 간격을 뺍니다. 뺄셈 결과가 데이터 타입의 허용 범위를 벗어나면 결과는 정의되지 않습니다.
구문
인수
datetime—interval을 뺄 기준이 되는 날짜 또는 날짜와 시간입니다.Date또는Date32또는DateTime또는DateTime64interval— 빼려는 기간(interval)입니다.Interval
반환 값
datetime에서 interval을 빼서 얻은 날짜 또는 날짜와 시간을 반환합니다. Date 또는 Date32 또는 DateTime 또는 DateTime64
예시
날짜에서 기간 빼기
subtractDays
도입: v1.1
날짜, 날짜-시간 값, 또는 문자열로 인코딩된 날짜나 날짜-시간 값에서 지정된 일 수를 뺍니다.
구문
인수
datetime— 지정된 일 수를 뺄 대상이 되는 날짜 또는 날짜와 시간 값입니다.Date또는Date32또는DateTime또는DateTime64또는Stringnum— 뺄 일 수입니다.(U)Int*또는Float*
반환 값
datetime에서 num일을 뺀 값을 반환합니다. Date 또는 Date32 또는 DateTime 또는 DateTime64
예시
서로 다른 날짜 유형에서 일 수 빼기
다른 INTERVAL 구문 사용하기
subtractHours
도입된 버전: v1.1
날짜, 날짜와 시간, 또는 문자열로 인코딩된 날짜나 날짜와 시간 값에서 지정한 시간 수만큼을 뺍니다.
구문
인수
datetime— 지정된 시간 수를 뺄 날짜 또는 날짜와 시간입니다.Date또는Date32또는DateTime또는DateTime64또는Stringnum— 빼야 하는 시간 수입니다.(U)Int*또는Float*
반환 값
datetime에서 num 시간만큼 뺀 값을 반환합니다. DateTime 또는 DateTime64(3)
예시
서로 다른 날짜형에서 시간 빼기
다른 INTERVAL 구문 사용하기
subtractInterval
도입 버전: v22.11
음수 interval을 다른 interval 또는 interval 튜플(tuple)에 더합니다.
참고: 같은 타입의 interval은 하나의 interval로 합쳐집니다. 예를 들어 toIntervalDay(2)와 toIntervalDay(1)이
전달되면 결과는 (2,1)이 아니라 (1)이 됩니다.
구문
인수
interval_1— 첫 번째 인터벌 또는 인터벌 튜플.Interval또는Tuple(Interval)interval_2— 부호를 반전할 두 번째 인터벌.Interval
반환 값
인터벌의 튜플 Tuple(T)을 반환합니다.
예시
인터벌 빼기
subtractMicroseconds
도입된 버전: v22.6
시간을 포함한 날짜 값 또는 문자열로 인코딩된 시간 포함 날짜 값에서 지정된 마이크로초 수를 뺍니다.
구문
인수
datetime— 지정된 마이크로초 수를 빼려는 날짜와 시간입니다.DateTime또는DateTime64또는Stringnum— 빼려는 마이크로초 수입니다.(U)Int*또는Float*
반환 값
datetime에서 num 마이크로초를 뺀 값을 반환합니다. 반환 형식은 DateTime64입니다.
예시
서로 다른 날짜/시간 유형에서 마이크로초 빼기
다른 INTERVAL 구문 사용
subtractMilliseconds
도입된 버전: v22.6
날짜 및 시간 값 또는 문자열로 인코딩된 날짜 및 시간 값에서 지정된 밀리초 수를 뺍니다.
구문
인수(Arguments)
datetime— 지정한 밀리초 수를 빼는 기준이 되는 날짜 및 시간.DateTime또는DateTime64또는Stringnum— 빼려는 밀리초 수.(U)Int*또는Float*
반환 값(Returned value)
datetime에서 num 밀리초를 뺀 값을 반환합니다. DateTime64
예시(Examples)
서로 다른 날짜 및 시간 타입에서 밀리초 빼기
대체 INTERVAL 구문 사용하기
subtractMinutes
도입 버전: v1.1
날짜, 날짜-시간 값 또는 문자열로 인코딩된 날짜나 날짜-시간 값에서 지정된 분 수를 뺍니다.
구문
인수
datetime— 지정한 분을 빼는 기준이 되는 날짜 또는 날짜·시간입니다.Date또는Date32또는DateTime또는DateTime64또는Stringnum— 빼려는 분의 값입니다.(U)Int*또는Float*
반환 값
datetime에서 num 분을 뺀 값을 반환합니다. DateTime 또는 DateTime64(3)
예시
서로 다른 날짜 타입에서 분을 빼는 예시
다른 INTERVAL 구문 사용
subtractMonths
도입 버전: v1.1
날짜, 날짜와 시간, 또는 문자열로 인코딩된 날짜나 날짜와 시간 값에서 지정한 개월 수를 뺍니다.
구문
인수
datetime— 지정된 개월 수를 빼려는 날짜 또는 날짜와 시간 값입니다.Date또는Date32또는DateTime또는DateTime64또는Stringnum— 빼려는 개월 수입니다.(U)Int*또는Float*
반환 값
datetime에서 num 개월을 뺀 값을 반환합니다. 반환 타입은 Date 또는 Date32 또는 DateTime 또는 DateTime64입니다.
예시
서로 다른 날짜 타입에서 개월 수 빼기
대체 INTERVAL 구문 사용
subtractNanoseconds
도입 버전: v20.1
날짜‑시간 값 또는 문자열로 인코딩된 날짜‑시간 값에서 지정된 나노초 수를 뺍니다.
구문
인수(Arguments)
datetime— 지정한 나노초를 뺄 날짜와 시간 값입니다.DateTime또는DateTime64또는Stringnum— 빼야 할 나노초 수입니다.(U)Int*또는Float*
반환 값(Returned value)
datetime 값에서 num 나노초를 뺀 DateTime64 값을 반환합니다.
예시(Examples)
서로 다른 날짜/시간 타입에서 나노초 빼기
대체 INTERVAL 구문 사용
subtractQuarters
도입 버전: v20.1
날짜, 날짜와 시간, 또는 이러한 값이 문자열로 인코딩된 값에서 지정한 개수의 분기를 뺍니다.
구문
인수
datetime— 지정된 개수의 분기를 차감할 기준 날짜 또는 날짜와 시간입니다.Date또는Date32또는DateTime또는DateTime64또는Stringnum— 차감할 분기의 개수입니다.(U)Int*또는Float*
반환 값
datetime에서 num 분기를 뺀 값을 반환합니다. Date 또는 Date32 또는 DateTime 또는 DateTime64
예시
서로 다른 날짜/시간 타입에서 분기 차감하기
INTERVAL 대체 구문 사용
subtractSeconds
도입 버전: v1.1
날짜, 날짜와 시간, 또는 문자열로 인코딩된 날짜나 날짜와 시간에서 지정된 초 수를 뺍니다.
문법
인자
datetime— 지정된 초 수를 뺄 기준이 되는 날짜 또는 날짜-시간입니다.Date또는Date32또는DateTime또는DateTime64또는Stringnum— 뺄 초(second)의 개수입니다.(U)Int*또는Float*
반환 값
datetime에서 num 초를 뺀 값을 반환합니다. 반환 형식은 DateTime 또는 DateTime64(3)입니다.
예시
서로 다른 날짜/시간 타입에서 초 단위로 빼기
다른 INTERVAL 구문 사용하기
subtractTupleOfIntervals
도입 버전: v22.11
날짜 또는 날짜와 시간 값에서 인터벌 튜플을 순차적으로 차감하는 함수입니다.
구문
인수
datetime— 간격을 빼는 기준이 되는 날짜 또는 날짜와 시간입니다.Date또는Date32또는DateTime또는DateTime64intervals—datetime에서 뺄 간격을 나타내는 튜플입니다.Tuple(Interval)
반환 값
intervals가 차감된 date를 반환합니다. Date 또는 Date32 또는 DateTime 또는 DateTime64
예시
날짜에서 간격 튜플을 빼기
subtractWeeks
도입 버전: v1.1
날짜, 날짜-시간 또는 문자열로 인코딩된 날짜나 날짜-시간 값에서 지정된 주 수를 뺍니다.
구문
인수
datetime— 지정한 주 수를 뺄 기준이 되는 날짜 또는 날짜와 시간 값입니다.Date또는Date32또는DateTime또는DateTime64또는Stringnum— 빼려는 주의 수입니다.(U)Int*또는Float*
반환 값
datetime에서 num주를 뺀 값을 반환합니다. Date 또는 Date32 또는 DateTime 또는 DateTime64
예시
서로 다른 날짜 타입에서 주 단위로 빼기
대체 INTERVAL 구문 사용하기
subtractYears
도입된 버전: v1.1
날짜 값, 날짜‑시간 값, 또는 문자열로 인코딩된 날짜/날짜‑시간 값에서 지정한 연도 수를 뺍니다.
구문
인수
datetime— 지정된 연도 수를 빼기 위한 날짜 또는 날짜/시간.Date또는Date32또는DateTime또는DateTime64또는Stringnum— 빼려는 연도 수.(U)Int*또는Float*
반환값
datetime에서 num년을 뺀 값을 반환합니다. Date 또는 Date32 또는 DateTime 또는 DateTime64
예시
서로 다른 날짜 타입에서 연도 빼기
다른 INTERVAL 구문 사용하기
timeDiff
도입된 버전: v23.4
두 개의 날짜 또는 날짜-시간 값 사이의 차이를 초 단위로 반환합니다.
차이는 enddate - startdate로 계산됩니다.
이 FUNCTION은 dateDiff('second', startdate, enddate)와 동일합니다.
다른 단위(시간, 일, 월 등)로 시간 차이를 계산하려면 dateDiff FUNCTION을 사용하십시오.
구문
인수
startdate— 빼지는 값(피감수)이 되는 첫 번째 시간 값입니다.Date또는Date32또는DateTime또는DateTime64enddate— 뺄 대상(감수)이 되는 두 번째 시간 값입니다.Date또는Date32또는DateTime또는DateTime64
반환 값
enddate와 startdate 사이의 차이를 초 단위로 반환합니다. Int64
예제
시간 차이를 초 단위로 계산
시간 차이를 계산하여 시간 단위(시간)로 변환하기
초 단위 dateDiff와 동일합니다
timeSlot
도입 버전: v1.1
시간을 30분 길이 구간의 시작 시각으로 반올림합니다.
이 함수는 확장 타입인 Date32 및 DateTime64 값을 인수로 받을 수 있지만,
일반 범위( Date는 1970년부터 2149년까지, DateTime은 1970년부터 2106년까지) 밖의 시간을 전달하면 잘못된 결과가 나옵니다.
구문
인수
time— 30분 길이의 구간 시작 시각으로 반올림할 기준 시각입니다.DateTime또는Date32또는DateTime64time_zone— 선택 사항입니다. 시간대를 나타내는 String 타입 상수 값 또는 표현식입니다.String
반환 값
30분 길이의 구간 시작 시각으로 반올림한 시각을 반환합니다. DateTime
예시
시간을 30분 단위로 반올림
timeSlots
도입된 버전: v1.1
StartTime에서 시작하여 Duration초 동안 이어지는 시간 구간에 대해, 이 구간에 속하는 시점들을 Size초 단위로 내림한 시각들의 배열을 반환합니다. Size는 선택적 매개변수이며 기본값은 1800초(30분)입니다.
이는 예를 들어, 해당 세션에서 페이지 조회수를 조회할 때 필요합니다.
DateTime64의 경우, 반환값의 스케일은 StartTime의 스케일과 다를 수 있습니다. 전달된 모든 인수 중 가장 높은 스케일이 사용됩니다.
구문
인수
StartTime— 구간의 시작 시각입니다.DateTime또는DateTime64Duration— 구간의 지속 시간(초 단위)입니다.UInt32또는DateTime64Size— 선택 사항입니다. 시간 슬롯의 크기(초 단위)입니다. 기본값은 1800(30분)입니다.UInt32또는DateTime64
반환 값
DateTime/DateTime64 배열을 반환합니다(반환 타입은 StartTime의 타입과 일치합니다). DateTime64의 경우, 반환값의 스케일은 StartTime의 스케일과 다를 수 있으며, 전달된 모든 인수 중 가장 높은 스케일이 적용됩니다. Array(DateTime) 또는 Array(DateTime64)
예시
구간에 대한 시간 슬롯 생성
timestamp
도입: v23.9
첫 번째 인수 expr을 데이터 타입 DateTime64(6)으로 변환합니다.
두 번째 인수 expr_time이 제공되면, 변환된 값에 지정된 시간을 더합니다.
구문
인수
반환 값
expr을 변환한 값 또는 expr_time 시간이 더해진 expr 값을 반환합니다. 반환 타입은 DateTime64(6)입니다.
예시
날짜 문자열을 DateTime64(6)으로 변환
날짜 문자열에 시간 추가
timezone
도입된 버전: v21.4
현재 세션의 시간대 이름을 반환하거나, 시간대 오프셋 또는 이름을 표준 시간대 이름으로 변환합니다.
구문
별칭: timeZone
인수
- 없음.
반환 값
정식 시간대(canonical time zone) 이름을 String 형식으로 반환합니다.
예시
사용 예시
timezoneOf
도입된 버전: v21.4
DateTime 또는 DateTime64 값의 시간대(time zone) 이름을 반환합니다.
구문
별칭: timeZoneOf
인수
datetime—DateTime또는DateTime64타입의 값입니다.timezone— 선택적입니다.datetime값의 타임존을 변환할 대상 타임존 이름입니다.String
반환 값
datetime의 타임존 이름을 반환합니다. String
예시
사용 예시
timezoneOffset
도입 버전: v21.6
UTC로부터의 시간대 오프셋을 초 단위로 반환합니다. 이 함수는 지정한 날짜와 시간에 대해 일광 절약 시간제(DST)와 과거 시간대 변경 사항을 고려합니다.
구문
별칭: timeZoneOffset
인수
datetime— 시간대 오프셋을 가져올DateTime값입니다.DateTime또는DateTime64
반환 값
UTC로부터의 오프셋을 초 단위로 반환합니다. Int32
예시
사용 예시
toDayOfMonth
도입 버전: v1.1
Date 또는 DateTime 값의 월별 일자(1-31)를 반환합니다.
구문
별칭(Aliases): DAY, DAYOFMONTH
인수(Arguments)
datetime— 일(day of month) 값을 가져올 기준이 되는 날짜 또는 날짜·시간 값입니다.Date또는Date32또는DateTime또는DateTime64
반환 값(Returned value)
지정된 날짜/시간 값의 일(day of month)을 반환합니다. UInt8
예시(Examples)
사용 예시(Usage example)
toDayOfWeek
도입된 버전: v1.1
Date 또는 DateTime 값의 주(週)에서 요일을 나타내는 번호를 반환합니다.
toDayOfWeek()의 두 개 인자를 받는 형식을 사용하면 주의 시작 요일을 Monday 또는 Sunday로 지정하고,
반환값의 범위를 0-6 또는 1-7 중에서 선택할 수 있습니다.
| Mode | First day of week | Range |
|---|---|---|
| 0 | Monday | 1-7: Monday = 1, Tuesday = 2, ..., Sunday = 7 |
| 1 | Monday | 0-6: Monday = 0, Tuesday = 1, ..., Sunday = 6 |
| 2 | Sunday | 0-6: Sunday = 0, Monday = 1, ..., Saturday = 6 |
| 3 | Sunday | 1-7: Sunday = 1, Monday = 2, ..., Saturday = 7 |
구문
별칭(Aliases): DAYOFWEEK
인수(Arguments)
datetime— 요일을 구할 날짜 또는 날짜·시간 값입니다.Date또는Date32또는DateTime또는DateTime64mode— 선택 사항입니다. 주 모드(week mode)를 지정하는 0–3 범위의 정수입니다. 생략하면 기본값은 0입니다.UInt8timezone— 선택 사항입니다. 변환에 사용할 시간대(timezone)입니다.String
반환 값(Returned value)
지정된 Date 또는 DateTime 값의 요일을 반환합니다. UInt8
예시(Examples)
사용 예시(Usage example)
toDayOfYear
도입된 버전: v18.4
Date 또는 DateTime 값이 속한 연도에서, 해당 날짜의 일(日) 번호(1-366)를 반환합니다.
구문
별칭: DAYOFYEAR
인수
datetime— 연중 일수(day of year)를 가져올 날짜 또는 날짜-시간 값입니다.Date또는Date32또는DateTime또는DateTime64
반환 값
지정된 Date 또는 DateTime 값의 연중 일수를 반환합니다. UInt16
예시
사용 예시
toDaysSinceYearZero
도입 버전: v23.9
지정된 날짜에 대해, ISO 8601에서 정의한 선대 그레고리력(proleptic Gregorian calendar)에서 서기 0000년 1월 1일 이후 경과한 일수를 반환합니다.
계산 방식은 MySQL의 TO_DAYS 함수와 동일합니다.
구문
별칭(Aliases): TO_DAYS
인수(Arguments)
date— 0년부터 경과한 일수를 계산할 날짜 또는 날짜와 시간 값.Date또는Date32또는DateTime또는DateTime64time_zone— 시간대.String
반환 값(Returned value)
날짜 0000-01-01 이후 경과한 일수를 반환합니다. UInt32
예시(Examples)
0년 기준 경과 일수 계산
toHour
도입 버전: v1.1
DateTime 또는 DateTime64 값의 시(hour) 구성 요소(0-23)를 반환합니다.
구문
별칭: HOUR
인수
datetime— 시를 추출할 날짜 및 시간.DateTime또는DateTime64
반환 값
datetime의 시(0-23)를 반환합니다. UInt8
예시
사용 예
toISOWeek
도입 버전: v20.1
Date 또는 시간 정보를 포함한 DateTime 값의 ISO 주(week) 번호를 반환합니다.
이 FUNCTION은 toWeek(date, 3)와 동일한 호환성 FUNCTION입니다.
ISO 주는 월요일에 시작하며, 한 해의 첫 번째 주는 1월 4일을 포함하는 주입니다.
ISO 8601에 따르면, 주 번호는 1부터 53까지의 범위를 가집니다.
연도 시작 또는 끝에 가까운 날짜는 이전 연도나 다음 연도의 주 번호를 반환할 수 있다는 점에 유의하십시오. 예를 들어, 2025년 12월 29일은 2026년 1월 4일을 포함하는 첫 번째 주에 속하기 때문에 주 번호 1을 반환합니다.
Syntax
인수
datetime— ISO 주 번호를 계산할 날짜 또는 날짜와 시간입니다.Date또는DateTime또는Date32또는DateTime64timezone— 선택 사항인 시간대입니다.String
반환 값
ISO 8601 표준에 따른 ISO 주 번호를 반환합니다. 1에서 53 사이의 값을 반환합니다. UInt8
예제
ISO 주 번호 구하기
ISO 주는 다른 해에 속할 수 있습니다
toISOYear
도입 버전: v18.4
날짜 또는 날짜-시간 값을 ISO 연도 번호로 변환합니다.
구문
인수
datetime— 날짜 또는 날짜와 시간을 포함한 값입니다.Date또는Date32또는DateTime또는DateTime64
반환 값
입력 값을 ISO 연도 번호로 변환하여 반환합니다. UInt16
예제
날짜 값에서 ISO 연도 추출하기
toLastDayOfMonth
도입 버전: v1.1
날짜 또는 날짜·시간 값을 해당 월의 마지막 날로 올립니다.
반환 타입은 enable_extended_results_for_datetime_functions 설정을 통해 구성할 수 있습니다.
구문
별칭: LAST_DAY
인수
value— 해당 월의 마지막 날로 올림할 날짜 또는 날짜 및 시간 값입니다.Date또는Date32또는DateTime또는DateTime64
반환 값
지정된 날짜 또는 날짜 및 시간 값에 대해 해당 월의 마지막 날짜를 반환합니다. Date
예시
월의 마지막 날로 올림하기
toLastDayOfWeek
도입 버전: v23.5
날짜 또는 날짜-시간 값을 다음 토요일 또는 일요일로 올림합니다.
반환 타입은 enable_extended_results_for_datetime_functions 설정으로 구성할 수 있습니다.
구문
인수
datetime— 변환할 날짜 또는 날짜와 시간입니다.Date또는DateTime또는Date32또는DateTime64mode—toWeek()FUNCTION에서 설명된 대로 주의 첫 번째 요일을 결정합니다. 기본값은0입니다.UInt8timezone— 선택 사항입니다. 변환에 사용할 시간대입니다. 지정하지 않으면 서버의 시간대를 사용합니다.String
반환 값
지정된 mode에 따라 주어진 날짜와 같거나 이후인 날짜 중 가장 가까운 토요일 또는 일요일의 날짜를 반환합니다. Date 또는 Date32 또는 DateTime 또는 DateTime64
예시
가장 가까운 토요일 또는 일요일로 올림
toMillisecond
도입: v24.2
DateTime 또는 DateTime64 값의 밀리초 부분(0-999)을 반환합니다.
구문
별칭: MILLISECOND
인수
datetime— 밀리초를 가져올 날짜 및 시간 값입니다.DateTime또는DateTime64
반환 값
datetime의 분(minute) 내 밀리초 값(0 - 59)을 반환합니다. UInt16
예시
사용 예
toMinute
도입된 버전: v1.1
Date 또는 DateTime 값의 분(0-59) 부분을 반환합니다.
구문
별칭: MINUTE
인자
datetime— 분 값을 가져올 날짜 및 시간입니다.DateTime또는DateTime64
반환 값
datetime 값의 시각에서 분(0 - 59)을 반환합니다. UInt8
예시
사용 예시
toModifiedJulianDay
도입 버전: v21.1
텍스트 형식 YYYY-MM-DD로 표현된 전진 그레고리력(Proleptic Gregorian calendar) 날짜를 수정 율리우스일(Modified Julian Day) Int32 숫자로 변환합니다. 이 함수는 0000-01-01부터 9999-12-31까지의 날짜를 지원합니다. 인수를 날짜로 파싱할 수 없거나 날짜가 유효하지 않은 경우 예외를 발생시킵니다.
구문
인수
date— String 형태의 날짜입니다.String또는FixedString
반환 값
Modified Julian Day 번호를 반환합니다. Int32
예시
날짜를 Modified Julian Day로 변환
toModifiedJulianDayOrNull
도입 버전: v21.1
toModifiedJulianDay()와 유사하지만, 예외를 발생시키는 대신 NULL을 반환합니다.
구문
인수(Arguments)
date— 텍스트 형식의 날짜입니다.String또는FixedString
반환 값
유효한 date 값이면 수정 율리우스일 수를 반환하고, 그렇지 않으면 null을 반환합니다. Nullable(Int32)
예시
널 처리를 포함하여 날짜를 수정 율리우스일 수로 변환
toMonday
도입 버전: v1.1
날짜나 날짜-시간 값을 같은 주의 월요일로 내림(round down)합니다. 날짜를 반환합니다.
반환 형식은 enable_extended_results_for_datetime_functions 설정을 통해 구성할 수 있습니다.
구문
인수
value— 주(week)의 월요일 날짜로 내림할 대상 날짜 또는 날짜‑시간 값입니다.Date또는Date32또는DateTime또는DateTime64
반환 값
지정된 날짜 또는 날짜‑시간 값과 같은 주에 속하는 월요일 날짜를 반환합니다. Date
예시
주(week)의 월요일로 내림하기
toMonth
도입: v1.1
Date 또는 DateTime 값에서 월(1-12)을 반환합니다.
구문
별칭(Aliases): MONTH
인수(Arguments)
datetime— 월을 추출할 날짜 또는 날짜와 시간 값입니다.Date또는Date32또는DateTime또는DateTime64
반환 값(Returned value)
지정된 날짜/시간 값의 월을 반환합니다. 반환 타입은 UInt8입니다.
예시(Examples)
사용 예시(Usage example)
toMonthNumSinceEpoch
도입 버전: v25.3
1970년 이후 경과한 개월 수를 반환합니다.
구문
인자
date— 날짜 또는 날짜와 시간입니다.Date또는DateTime또는DateTime64
반환 값
양의 정수 값입니다.
예시
예시
toQuarter
도입 버전: v1.1
지정된 Date 또는 DateTime 값에 대해 연도의 분기(1-4)를 반환합니다.
구문
별칭(Aliases): QUARTER
인수(Arguments)
datetime— 연도의 분기를 계산할 기준이 되는 날짜 또는 날짜·시간입니다.Date또는Date32또는DateTime또는DateTime64
반환 값(Returned value)
지정된 날짜/시간이 속한 연도의 분기를 반환합니다. UInt8
예시(Examples)
사용 예시(Usage example)
toRelativeDayNum
도입 버전: v1.1
날짜 또는 날짜 시간 값을 과거의 특정 고정 시점으로부터 경과한 일 수로 변환합니다.
그 특정 시점은 구현 세부 사항에 해당하므로, 이 FUNCTION은 단독으로 사용하도록 설계되지 않았습니다.
이 FUNCTION의 주요 목적은 두 날짜 또는 날짜 시간 값 사이의 일 수 차이를 계산하는 것입니다. 예: toRelativeDayNum(dt1) - toRelativeDayNum(dt2).
구문
인수
date— 날짜 또는 시간 정보를 포함한 날짜.Date또는DateTime또는DateTime64
반환 값
과거의 고정 기준 시점으로부터 경과한 일 수를 반환합니다. UInt32
예제
상대적인 일 번호 가져오기
toRelativeHourNum
도입 버전: v1.1
날짜 또는 시간 정보를 포함한 날짜를 과거의 특정 고정 시점으로부터 경과한 시간(시간 단위) 수로 변환합니다.
정확한 기준 시점은 구현 세부 사항이므로, 이 함수는 단독으로 사용하도록 설계되지 않았습니다.
함수의 주된 목적은 두 날짜 또는 시간 정보를 포함한 날짜 사이의 시간(시간 단위) 차이를 계산하는 것입니다. 예를 들어 toRelativeHourNum(dt1) - toRelativeHourNum(dt2)와 같이 사용할 수 있습니다.
구문
인수
date— 날짜 또는 날짜와 시간.Date또는DateTime또는DateTime64
반환 값
과거의 고정 기준 시점으로부터의 시간(시 단위) 수를 반환합니다. UInt32
예시
상대적인 시(hour) 번호 가져오기
toRelativeMinuteNum
도입된 버전: v1.1
날짜 또는 시간 정보를 포함한 날짜를 과거의 특정 고정 시점으로부터 경과한 분 수로 변환합니다.
해당 기준 시각은 구현 세부 사항이므로, 이 FUNCTION은 단독으로 사용하기 위한 것이 아닙니다.
이 FUNCTION의 주요 목적은 두 개의 날짜 또는 시간 정보를 포함한 날짜 사이의 분 단위 차이를 계산하는 것입니다. 예: toRelativeMinuteNum(dt1) - toRelativeMinuteNum(dt2).
구문
인수
date— 날짜 또는 날짜와 시간.Date또는DateTime또는DateTime64
반환 값
고정된 과거 기준점으로부터 경과한 분(minute) 수를 반환합니다. UInt32
예제
상대 분 번호 구하기
toRelativeMonthNum
도입 버전: v1.1
날짜 또는 날짜-시간 값을 과거의 특정 고정 시점 이후 경과한 개월 수로 변환합니다.
이때의 정확한 시점은 구현 세부 내용에 속하므로, 이 함수는 단독 사용을 위한 것이 아닙니다.
함수의 주된 목적은 두 날짜 또는 날짜-시간 값 사이의 개월 수 차이를 계산하는 것이며, 예를 들어 toRelativeMonthNum(dt1) - toRelativeMonthNum(dt2)와 같습니다.
구문
인수
date— 날짜 또는 날짜-시간 값.Date또는DateTime또는DateTime64
반환 값
과거의 고정 기준점으로부터 경과한 개월 수를 반환합니다. UInt32
예시
상대적인 월 번호 구하기
toRelativeQuarterNum
도입 버전: v1.1
날짜 또는 시간 정보를 포함한 날짜를 과거의 특정 고정 시점부터 경과한 분기 수로 변환합니다.
정확한 기준 시점은 구현 세부 정보이므로, 이 함수는 단독 사용을 염두에 둔 함수가 아닙니다.
함수의 주요 목적은 두 날짜 또는 시간 정보를 포함한 날짜 사이의 분기 차이를 계산하는 것입니다. 예: toRelativeQuarterNum(dt1) - toRelativeQuarterNum(dt2).
구문
인수
date— 날짜 또는 날짜와 시간.Date또는DateTime또는DateTime64
반환 값
과거의 고정 기준 시점으로부터의 분기 수를 반환합니다. UInt32
예시
상대 분기 번호 구하기
toRelativeSecondNum
도입 버전: v1.1
날짜 또는 시간 정보를 포함한 날짜를 과거의 특정 고정 시점 이후 경과한 초(second) 수로 변환합니다.
이 시점의 정확한 값은 구현 세부사항에 해당하므로, 이 FUNCTION은 단독으로 사용하는 용도로는 제공되지 않습니다.
이 FUNCTION의 주요 목적은 두 날짜 또는 시간 정보를 포함한 날짜 사이의 초 단위 차이를 계산하는 것입니다. 예: toRelativeSecondNum(dt1) - toRelativeSecondNum(dt2).
구문
인수(Arguments)
date— 날짜 또는 시간 정보가 포함된 날짜.Date또는DateTime또는DateTime64
반환값(Returned value)
과거의 고정 기준 시점으로부터 경과한 초 단위를 반환합니다. UInt32
예시(Examples)
상대적인 초 값 가져오기
toRelativeWeekNum
도입 버전: v1.1
날짜 또는 시간 정보를 포함한 날짜를 과거의 고정된 기준 시점으로부터 경과한 주 수로 변환합니다.
정확한 기준 시점은 구현상의 세부 사항이므로, 이 FUNCTION은 단독으로 사용하기 위한 것이 아닙니다.
이 FUNCTION의 주요 목적은 두 날짜 또는 시간 정보를 포함한 날짜 사이의 주 단위 차이를 계산하는 것입니다. 예: toRelativeWeekNum(dt1) - toRelativeWeekNum(dt2).
구문
인자
date— 날짜 또는 시간과 함께 있는 날짜.Date또는DateTime또는DateTime64
반환 값
과거의 고정 기준 시점으로부터의 주(week) 수를 반환합니다. UInt32
예시
상대적인 주 번호 구하기
toRelativeYearNum
도입 버전: v1.1
날짜 또는 시간 값을 포함한 날짜를 과거의 특정 고정된 시점으로부터 경과한 연수로 변환합니다.
정확한 기준 시점은 구현 세부 사항에 해당하므로, 이 함수는 단독으로 사용하도록 설계되지 않았습니다.
이 함수의 주된 목적은 두 날짜 또는 시간 값을 포함한 날짜 사이의 연수 차이를 계산하는 것이며, 예를 들면 toRelativeYearNum(dt1) - toRelativeYearNum(dt2)와 같이 사용합니다.
구문
인자
date— 날짜 또는 시간이 포함된 날짜입니다.Date또는DateTime또는DateTime64
반환 값
과거의 고정 기준점으로부터의 연도 수를 반환합니다. UInt16
예시
상대 연도 번호 가져오기
toSecond
도입 버전: v1.1
DateTime 또는 DateTime64 값의 초(0-59) 부분을 반환합니다.
구문
별칭(Aliases): SECOND
인자(Arguments)
datetime— 초를 가져올 날짜와 시간.DateTime또는DateTime64
반환 값(Returned value)
datetime이 속한 분의 초 값(0 - 59)을 반환합니다. UInt8
예시(Examples)
사용 예시(Usage example)
toStartOfDay
도입: v1.1
시간이 포함된 날짜를 해당 날짜의 시작 시각으로 내림합니다.
enable_extended_results_for_datetime_functions 설정을 통해 반환 타입을 구성할 수 있습니다.
구문
인수
반환 값
해당 일의 시작 시각으로 내림 반올림된 날짜‑시간을 반환합니다. Date 또는 DateTime 또는 Date32 또는 DateTime64
예시
하루의 시작 시각으로 내림 반올림
toStartOfFifteenMinutes
도입 버전: v1.1
날짜와 시간을 15분 단위 구간의 시작 시각으로 내림합니다.
반환 유형은 enable_extended_results_for_datetime_functions 설정을 통해 구성할 수 있습니다.
구문
인수(Arguments)
datetime— 반올림할 날짜 또는 날짜와 시간입니다.DateTime또는DateTime64
반환 값(Returned value)
가장 가까운 15분 구간의 시작 시각으로 반올림된 날짜와 시간을 반환합니다. DateTime 또는 DateTime64
예시(Examples)
예시(Example)
toStartOfFiveMinutes
도입된 버전: v22.6
날짜와 시간을 바로 이전 5분 구간의 시작 시점으로 내림합니다.
반환 타입은 enable_extended_results_for_datetime_functions 설정을 통해 구성할 수 있습니다.
구문
별칭: toStartOfFiveMinute
인수
datetime— 반올림할 날짜와 시간.DateTime또는DateTime64
반환 값
가장 가까운 5분 간격 구간의 시작 시각으로 반올림된 날짜와 시간을 반환합니다. DateTime 또는 DateTime64
예시
예시
toStartOfHour
도입 버전: v1.1
날짜와 시간을 해당 시(hour)의 시작 시각(정각)으로 내립니다.
반환 타입은 enable_extended_results_for_datetime_functions을(를) 설정하여 변경할 수 있습니다.
구문
인자
datetime— 내림 처리할 날짜와 시간.DateTime또는DateTime64
반환 값
해당 시각이 속한 시(hour)의 시작 시점으로 시간을 내림 처리한 날짜와 시간을 반환합니다. DateTime 또는 DateTime64
예시
시간 단위의 시작 시점으로 내림 처리
toStartOfISOYear
도입 버전: v1.1
날짜 또는 날짜-시간 값을 ISO 연도의 첫째 날로 내림합니다. ISO 연도는 일반 연도와 다를 수 있습니다. 자세한 내용은 ISO week date를 참고하십시오.
반환 타입은 enable_extended_results_for_datetime_functions 설정으로 변경할 수 있습니다.
구문
인수
value— ISO 연도의 첫째 날로 내림(round down)할 날짜 또는 시간 포함 날짜입니다.Date또는Date32또는DateTime또는DateTime64
반환 값
지정된 날짜 또는 시간 포함 날짜에 대해 해당 ISO 연도의 첫째 날을 반환합니다. Date
예시
ISO 연도의 첫째 날로 내림
toStartOfInterval
도입 버전: v20.1
이 함수는 toStartOfInterval(date_or_date_with_time, INTERVAL x unit [, time_zone]) 구문으로 다른 toStartOf*() 함수들을 일반화한 것입니다.
예:
toStartOfInterval(t, INTERVAL 1 YEAR)는toStartOfYear(t)와 동일한 값을 반환합니다.toStartOfInterval(t, INTERVAL 1 MONTH)는toStartOfMonth(t)와 동일한 값을 반환합니다.toStartOfInterval(t, INTERVAL 1 DAY)는toStartOfDay(t)와 동일한 값을 반환합니다.toStartOfInterval(t, INTERVAL 15 MINUTE)는toStartOfFifteenMinutes(t)와 동일한 값을 반환합니다.
계산은 특정 시점을 기준으로 수행됩니다:
| Interval | Start |
|---|---|
| YEAR | year 0 |
| QUARTER | 1900 Q1 |
| MONTH | 1900 January |
| WEEK | 1970, 1st week (01-05) |
| DAY | 1970-01-01 |
| HOUR | (*) |
| MINUTE | 1970-01-01 00:00:00 |
| SECOND | 1970-01-01 00:00:00 |
| MILLISECOND | 1970-01-01 00:00:00 |
| MICROSECOND | 1970-01-01 00:00:00 |
| NANOSECOND | 1970-01-01 00:00:00 |
| (*) hour intervals are special: the calculation is always performed relative to 00:00:00 (midnight) of the current day. As a result, only | |
| hour values between 1 and 23 are useful. |
단위 WEEK이 지정되면, toStartOfInterval은 주가 월요일에 시작된다고 가정합니다. 이 동작은 기본적으로 주가 일요일에 시작되는 함수 toStartOfWeek의 동작과 다르다는 점에 유의하십시오.
두 번째 오버로드는 TimescaleDB의 time_bucket() 함수와 PostgreSQL의 date_bin() 함수를 각각 에뮬레이션합니다.
구문
별칭(Aliases): time_bucket, date_bin
인수(Arguments)
value— 내림(round down) 처리할 날짜 또는 날짜와 시간 값입니다.Date또는DateTime또는DateTime64x— 구간 길이를 나타내는 숫자입니다. -unit— 구간 단위입니다: YEAR, QUARTER, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND, MILLISECOND, MICROSECOND, NANOSECOND. -time_zone— 선택 사항입니다. 시간대 이름을 나타내는 문자열입니다. -origin— 선택 사항입니다. 계산의 기준이 되는 기준 시점(두 번째 오버로드에서만 사용)입니다.
반환 값(Returned value)
입력 값을 포함하는 구간의 시작 시점을 반환합니다. DateTime
예시(Examples)
기본 구간 반올림(Basic interval rounding)
기준 시점 사용
toStartOfMicrosecond
도입 버전: v22.6
날짜‑시간 값을 마이크로초 단위의 시작 시점으로 내림합니다.
구문
인수
datetime— 날짜와 시간.DateTime64timezone— 선택 사항입니다. 반환 값에 사용할 시간대입니다. 지정하지 않으면value매개변수의 시간대가 사용됩니다.String
반환 값
마이크로초 미만 단위가 제거된 입력 값입니다. DateTime64
예제
시간대를 지정하지 않은 쿼리
타임존을 지정한 쿼리
toStartOfMillisecond
도입 버전: v22.6
날짜와 시간을 밀리초 단위로 내림합니다.
구문
인수
datetime— 날짜와 시간입니다.DateTime64timezone— 선택 사항입니다. 반환 값에 사용할 시간대(timezone)입니다. 지정하지 않으면value매개변수의 시간대를 사용합니다.String
반환 값
밀리초 미만 단위까지 포함하는 입력 값입니다. DateTime64
예시
타임존을 지정하지 않은 쿼리
타임존을 지정한 쿼리
toStartOfMinute
도입된 버전: v1.1
시간이 포함된 날짜를 해당 분의 시작 시각으로 내립니다.
enable_extended_results_for_datetime_functions를 설정하여 반환 유형을 설정할 수 있습니다.
구문
인수
datetime— 내림 처리할 날짜와 시간.DateTime또는DateTime64
반환 값
분의 시작 시각으로 내림 처리된 날짜와 시간을 반환합니다. DateTime 또는 DateTime64
예시
분의 시작 시각으로 내림 처리
toStartOfMonth
도입: v1.1
날짜 또는 날짜·시간 값을 해당 월의 첫날로 내림(round down)합니다.
반환 유형은 enable_extended_results_for_datetime_functions 설정을 통해 구성할 수 있습니다.
구문
인수
value— 해당 월의 첫째 날로 내림 처리할 날짜 또는 날짜와 시간입니다.Date또는Date32또는DateTime또는DateTime64
반환 값
지정된 날짜 또는 날짜와 시간 값에 대해 해당 월의 첫째 날을 반환합니다. Date
예시
해당 월의 첫째 날로 내림
toStartOfNanosecond
도입 버전: v22.6
날짜와 시간을 나노초 단위의 시작 시점으로 내림합니다.
구문
인자
datetime— 날짜와 시간.DateTime64timezone— 선택 사항. 반환 값에 사용할 시간대입니다. 지정하지 않으면value매개변수의 시간대를 사용합니다.String
반환 값
나노초를 포함하는 입력 값입니다. DateTime64
예시
시간대를 지정하지 않은 쿼리
타임존이 포함된 쿼리
toStartOfQuarter
도입 버전: v1.1
날짜 또는 날짜·시간 값을 해당 분기의 첫째 날로 내림 처리합니다. 분기의 첫째 날은 1월 1일, 4월 1일, 7월 1일, 10월 1일 중 하나입니다.
반환 타입은 enable_extended_results_for_datetime_functions 설정을 통해 구성할 수 있습니다.
구문
인수
value— 분기 첫째 날로 내림 처리할 날짜 또는 날짜와 시간입니다.Date또는Date32또는DateTime또는DateTime64
반환 값
지정된 날짜 또는 날짜와 시간에 대해 해당 분기의 첫째 날을 반환합니다. Date
예시
분기 첫째 날로 내림
toStartOfSecond
도입 버전: v20.5
날짜와 시간을 해당 초의 시작 시각으로 내림(round down)합니다.
구문
인수
datetime— 소수점 이하 초 단위를 잘라낼 날짜와 시간입니다.DateTime64timezone— 선택 사항입니다. 반환 값에 사용할 시간대입니다. 지정하지 않으면 함수는value매개변수의 시간대를 사용합니다.String
반환 값
소수점 이하 초를 제거한 입력 값을 반환합니다. DateTime64
예시
타임존을 지정하지 않은 쿼리
시간대(timezone)를 사용하는 쿼리
toStartOfTenMinutes
도입된 버전: v20.1
날짜와 시간을 가장 가까운 10분 구간의 시작 시점으로 내림합니다.
반환 타입은 enable_extended_results_for_datetime_functions 설정으로 변경할 수 있습니다.
구문
인수
datetime— 시간 정보를 포함한 날짜.DateTime또는DateTime64
반환 값
가장 가까운 10분 구간의 시작 시각으로 반올림한 시간 정보를 포함한 날짜 DateTime 또는 DateTime64를 반환합니다.
예시
예시
toStartOfWeek
도입 버전: v20.1
날짜 또는 날짜‑시간 값을 가장 가까운 일요일 또는 월요일의 시작 시각으로 내림합니다.
반환 타입은 enable_extended_results_for_datetime_functions 설정으로 구성할 수 있습니다.
구문
인수
datetime— 변환할 일 또는 일시입니다.Date또는DateTime또는Date32또는DateTime64mode—toWeek()FUNCTION에서 설명된 것처럼 한 주의 첫 번째 요일을 결정합니다. 기본값은0입니다.UInt8timezone— 변환에 사용할 시간대입니다. 지정하지 않으면 서버의 시간대를 사용합니다.String
반환 값
지정된 mode에 따라 주어진 날짜와 같거나 그 이전의 가장 가까운 일요일 또는 월요일의 날짜를 반환합니다. Date 또는 Date32 또는 DateTime 또는 DateTime64
예시
가장 가까운 일요일 또는 월요일로 내림
toStartOfYear
도입 버전: v1.1
날짜 또는 시간 정보를 포함한 날짜를 해당 연도의 첫째 날로 내립니다. 날짜는 Date 객체로 반환됩니다.
반환 타입은 enable_extended_results_for_datetime_functions 설정을 통해 구성할 수 있습니다.
구문
인수
value— 내림 처리(round down)할 날짜 또는 날짜와 시간입니다.Date또는Date32또는DateTime또는DateTime64
반환 값
지정된 날짜/시간에 대해 해당 연도의 첫날을 반환합니다. Date
예시
연도의 첫날로 내림 처리하기
toTimeWithFixedDate
도입 버전: v1.1
날짜 또는 날짜-시간 값에서 시간 구성 요소를 추출합니다.
반환 결과는 고정된 기준 시점으로부터의 오프셋이며, 현재 기준 시점은 1970-01-02입니다.
다만 정확한 기준 시점은 구현 세부 사항이므로 향후 변경될 수 있습니다.
따라서 toTime은 단독으로 사용하지 않는 것이 좋습니다.
이 함수의 주요 목적은 두 날짜 또는 날짜-시간 값 사이의 시간 차이를 계산하는 것입니다. 예: toTime(dt1) - toTime(dt2).
구문
인수
date— 시간을 계산할 기준이 되는 날짜.Date또는DateTime또는DateTime64timezone— 선택적 인수입니다. 반환 값에 적용할 시간대.String
반환 값
날짜 또는 날짜와 시간에서 시간 구성 요소를, 고정된 시점(현재 1970-01-02로 선택됨)에 대한 오프셋 형태로 반환합니다. DateTime
예제
두 날짜 사이의 시간 차이 계산
toTimezone
도입된 버전: v1.1
DateTime 또는 DateTime64 값을 지정한 시간대(time zone)로 변환합니다.
데이터의 내부 값(UNIX 초 단위 정수)은 변경되지 않습니다.
값의 시간대 속성과 값의 문자열 표현만 변경됩니다.
구문
별칭: toTimeZone
인수
date— 변환할 값입니다.DateTime또는DateTime64timezone— 대상 시간대의 이름입니다.String
반환 값
입력과 동일한 타임스탬프이지만, 지정된 시간대가 설정된 DateTime 또는 DateTime64 값으로 반환합니다.
예시
사용 예시
toUTCTimestamp
도입 버전: v23.8
날짜 또는 날짜/시간 값을 특정 시간대에서 UTC 시간대의 타임스탬프로 변환합니다. 이 함수는 주로 Apache Spark 및 유사한 프레임워크와의 호환성을 위해 포함되어 있습니다.
구문
별칭: to_utc_timestamp
인수
datetime— 날짜(Date) 또는 날짜와 시간을 포함한 타입의 상수 값 또는 표현식입니다.DateTime또는DateTime64time_zone— 시간대를 나타내는String타입 상수 값 또는 표현식입니다.String
반환 값
UTC 시간대의 날짜 또는 날짜와 시간을 반환합니다. DateTime 또는 DateTime64
예시
시간대를 UTC로 변환
toUnixTimestamp
도입: v1.1
String, Date, 또는 DateTime을 Unix 타임스탬프(1970-01-01 00:00:00 UTC 이후 경과한 초 수)를 나타내는 UInt32 값으로 변환합니다.
구문
인자
date— 변환할 값입니다.Date또는Date32또는DateTime또는DateTime64또는Stringtimezone— 선택 사항입니다. 변환에 사용할 시간대입니다. 지정하지 않으면 서버의 시간대가 사용됩니다.String
반환 값
Unix 타임스탬프를 반환합니다. UInt32
예시
사용 예시
toWeek
도입 버전: v20.1
이 함수는 date 또는 datetime 값에 대한 주(week) 번호를 반환합니다. toWeek()의 두 개의 인자를 받는 형식에서는 주의 시작 요일을 일요일 또는 월요일로 지정할 수 있으며, 반환 값의 범위를 0에서 53까지로 할지, 1에서 53까지로 할지 지정할 수 있습니다.
toISOWeek()은 toWeek(date,3)와 동일한 동작을 하는 호환성 함수입니다.
다음 표는 mode 인자가 어떻게 동작하는지 설명합니다.
| Mode | First day of week | Range | Week 1 is the first week ... |
|---|---|---|---|
| 0 | Sunday | 0-53 | 해당 연도에 일요일이 포함된 주 |
| 1 | Monday | 0-53 | 해당 연도에 4일 이상이 포함된 주 |
| 2 | Sunday | 1-53 | 해당 연도에 일요일이 포함된 주 |
| 3 | Monday | 1-53 | 해당 연도에 4일 이상이 포함된 주 |
| 4 | Sunday | 0-53 | 해당 연도에 4일 이상이 포함된 주 |
| 5 | Monday | 0-53 | 해당 연도에 월요일이 포함된 주 |
| 6 | Sunday | 1-53 | 해당 연도에 4일 이상이 포함된 주 |
| 7 | Monday | 1-53 | 해당 연도에 월요일이 포함된 주 |
| 8 | Sunday | 1-53 | 1월 1일을 포함하는 주 |
| 9 | Monday | 1-53 | 1월 1일을 포함하는 주 |
의미가 "해당 연도에 4일 이상이 포함된 주"인 mode 값의 경우, 주 번호는 ISO 8601:1988에 따라 매겨집니다.
- 1월 1일을 포함하는 주가 새해에 4일 이상을 포함하면, 그 주가 1주차입니다.
- 그렇지 않으면, 그 주는 이전 해의 마지막 주가 되며, 그다음 주가 1주차입니다.
의미가 "1월 1일을 포함하는 주"인 mode 값의 경우, 1월 1일을 포함하는 주가 1주차가 됩니다. 해당 주에 새해 날짜가 며칠 포함되는지는 중요하지 않으며, 단 하루만 포함되어 있어도 마찬가지입니다. 즉, 12월의 마지막 주가 다음 해의 1월 1일을 포함하면, 그 주는 다음 해의 1주차가 됩니다.
첫 번째 인자는 parseDateTime64BestEffort()가 지원하는 형식의 String으로도 지정할 수 있습니다. 문자열 인자 지원은 특정 서드 파티 도구에서 기대하는 MySQL과의 호환성을 위한 이유로만 존재합니다. 문자열 인자 지원은 향후 새로운 MySQL 호환성 SETTINGS 설정에 따라 달라질 수 있으며, 일반적으로 문자열 파싱 속도가 느리기 때문에 사용하지 않을 것을 권장합니다.
구문
별칭: week
인수
datetime— 주 번호를 계산할 날짜 또는 시간 포함 날짜입니다.Date또는DateTimemode— 선택 사항입니다.0에서9까지의 모드는 한 주의 첫 번째 요일과 주 번호의 범위를 결정합니다. 기본값은0입니다. -time_zone— 선택 사항입니다. 시간대입니다.String
반환 값
지정된 모드에 따라 주 번호를 반환합니다. UInt32
예시
서로 다른 모드에서 주 번호 가져오기
toYYYYMM
도입 버전: v1.1
날짜 또는 날짜·시간 값을 연도와 월(YYYY * 100 + MM) 정보를 담은 UInt32 숫자로 변환합니다.
두 번째 인수로 선택적인 시간대를 받을 수 있습니다. 지정하는 경우 시간대는 문자열 상수여야 합니다.
이 FUNCTION은 YYYYMMDDToDate() FUNCTION과 반대 동작을 합니다.
구문
인자
datetime— 변환할 날짜 또는 날짜와 시간입니다.Date또는Date32또는DateTime또는DateTime64timezone— 선택 사항입니다. 변환에 사용할 타임존입니다. 지정하는 경우 타임존은 문자열 상수여야 합니다.String
반환 값
연도와 월 숫자를 포함하는 UInt32 숫자(YYYY * 100 + MM)를 반환합니다. UInt32
예시
현재 날짜를 YYYYMM 형식으로 변환
toYYYYMMDD
도입 버전: v1.1
날짜 또는 시간 정보를 포함한 날짜를 연, 월, 일을 조합한 UInt32 숫자(YYYY * 10000 + MM * 100 + DD)로 변환합니다. 두 번째 선택적 인자로 시간대를 받을 수 있습니다. 이 인자를 지정하는 경우, 시간대는 문자열 상수여야 합니다.
구문
인수(Arguments)
datetime— 변환할 날짜 또는 날짜·시간 값입니다.Date또는Date32또는DateTime또는DateTime64timezone— 선택적 인수입니다. 변환에 사용할 타임존입니다. 지정하는 경우, 타임존은 문자열 상수여야 합니다.String
반환 값(Returned value)
연, 월, 일을 포함하는 UInt32 정수 값을 반환합니다(YYYY * 10000 + MM * 100 + DD). UInt32
예시(Examples)
현재 날짜를 YYYYMMDD 형식으로 변환
toYYYYMMDDhhmmss
도입 버전: v1.1
날짜 또는 날짜와 시간을 연, 월, 일, 시, 분, 초를 포함하는 UInt64 숫자로 변환합니다(YYYY * 10000000000 + MM * 100000000 + DD * 1000000 + hh * 10000 + mm * 100 + ss).
두 번째 인수로 선택적인 타임존을 지정할 수 있습니다. 지정하는 경우 타임존은 문자열 상수여야 합니다.
구문
인자
datetime— 변환할 날짜 또는 날짜와 시간입니다.Date또는Date32또는DateTime또는DateTime64timezone— 선택 사항입니다. 변환에 사용할 시간대입니다. 지정한 경우 시간대는 문자열 상수여야 합니다.String
반환 값
연, 월, 일, 시, 분, 초를 포함하는 UInt64 값을 반환합니다(YYYY * 10000000000 + MM * 100000000 + DD * 1000000 + hh * 10000 + mm * 100 + ss). UInt64
예시
현재 날짜와 시간을 YYYYMMDDhhmmss 형식으로 변환
toYear
도입: v1.1
Date 또는 DateTime 값에서 연도(서기)를 반환합니다.
구문
별칭: YEAR
인수
datetime— 연도를 추출할 날짜 또는 날짜와 시간이 포함된 값입니다.Date또는Date32또는DateTime또는DateTime64
반환 값
지정된 Date 또는 DateTime 값의 연도를 반환합니다. UInt16
예시
사용 예시
toYearNumSinceEpoch
도입된 버전: v25.3
1970년 이후 경과한 연 수를 반환합니다.
구문
인자
date— 변환할 날짜 또는 날짜와 시간입니다.Date또는DateTime,DateTime64
반환값
양의 정수입니다.
예시
예제
toYearWeek
도입된 버전: v20.1
날짜에 대해 연도와 주(week)를 반환합니다. 결과에 포함되는 연도는, 연도의 첫 주와 마지막 주의 경우 인자로 전달된 날짜의 연도와 다를 수 있습니다.
mode 인자는 toWeek()의 mode 인자와 동일하게 동작합니다.
경고: toYearWeek()가 반환하는 주 번호는 toWeek()가 반환하는 값과 다를 수 있습니다. toWeek()는 항상 주어진 연도의 맥락에서 주 번호를 반환하며, toWeek()가 0을 반환하는 경우 toYearWeek()는 이전 해의 마지막 주에 해당하는 값을 반환합니다. 아래 예시의 prev_yearWeek를 참고하십시오.
첫 번째 인자는 parseDateTime64BestEffort()가 지원하는 형식의 String으로도 지정할 수 있습니다. 문자열 인자에 대한 지원은 특정 서드파티 도구에서 기대하는 MySQL과의 호환성을 위한 것입니다. 향후 문자열 인자 지원이 새로운 MySQL 호환성 설정에 따라 달라질 수 있고, 일반적으로 문자열 파싱은 느리므로 사용하지 않는 것이 좋습니다.
문법
별칭: yearweek
인수
datetime— 연도와 주 번호를 가져올 날짜 또는 날짜와 시간 값입니다.Date또는DateTimemode— 선택 사항입니다.0부터9까지의 mode는 주의 첫 요일과 주 번호 범위를 결정합니다. 기본값은0입니다.timezone— 선택 사항입니다. 시간대입니다.String
반환 값
연도와 주 번호를 결합한 정수 값을 반환합니다. UInt32
예시
서로 다른 mode에서 연도-주 조합 가져오기
today
도입: v1.1
쿼리 분석 시점의 현재 날짜를 반환합니다. toDate(now())와 동일합니다.
구문
별칭: curdate, current_date
인수
- 없음.
반환값
현재 날짜를 Date 형식으로 반환합니다.
예시
사용 예시
yesterday
도입 버전: v1.1
인수가 없으며, 쿼리 분석 시점 중 하나에서 어제 날짜를 반환합니다.
구문
인수
- 없음.
반환값
어제 날짜를 반환합니다. Date
예시
어제 날짜 가져오기