날짜/시간 함수 - Amazon Timestream

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

날짜/시간 함수

참고

Timestream for LiveAnalytics 는 음수 시간 값을 지원하지 않습니다. 음수 시간을 초래하는 모든 작업은 오류가 발생합니다.

Timestream for LiveAnalytics 는 날짜 및 시간에 UTC 시간대를 사용합니다. Timestream은 날짜 및 시간에 대해 다음 함수를 지원합니다.

일반 및 변환

Timestream for LiveAnalytics 는 날짜 및 시간에 대해 다음과 같은 일반 및 변환 함수를 지원합니다.

함수 출력 데이터 유형 설명

현재_날짜

date

현재 날짜를 UTC로 반환합니다. 사용된 괄호가 없습니다.

SELECT current_date

예제 결과: 2022-07-07

참고

이는 예약된 키워드이기도 합니다. 예약된 키워드 목록은 섹션을 참조하세요예약어.

현재_시간

시간

현재 시간을 UTC로 반환합니다. 사용된 괄호가 없습니다.

SELECT current_time

예제 결과: 17:41:52.827000000

참고

이는 예약된 키워드이기도 합니다. 예약된 키워드 목록은 섹션을 참조하세요예약어.

current_timestamp 또는 now()

타임스탬프

현재 타임스탬프를 UTC로 반환합니다.

SELECT current_timestamp

예제 결과: 2022-07-07 17:42:32.939000000

참고

이는 예약된 키워드이기도 합니다. 예약된 키워드 목록은 섹션을 참조하세요예약어.

current_timezone()

varchar

값은 'UTC'가 됩니다.

Timestream은 날짜 및 시간에 UTC 시간대를 사용합니다.

SELECT current_timezone()

예제 결과: UTC

date(varchar(x)), date(timestamp)

date

SELECT date(TIMESTAMP '2022-07-07 17:44:43.771000000')

예제 결과: 2022-07-07

last_day_of_month(타임스탬프), last_day_of_month(date)

date

SELECT last_day_of_month(TIMESTAMP '2022-07-07 17:44:43.771000000')

예제 결과: 2022-07-31

from_iso8601_timestamp(문자열)

타임스탬프

ISO 8601 타임스탬프를 내부 타임스탬프 형식으로 구문 분석합니다.

SELECT from_iso8601_timestamp('2022-06-17T08:04:05.000000000+05:00')

예제 결과: 2022-06-17 03:04:05.000000000

from_iso8601_date(문자열)

date

ISO 8601 날짜 문자열을 지정된 날짜의 UTC 00:00:00에 대한 내부 타임스탬프 형식으로 구문 분석합니다.

SELECT from_iso8601_date('2022-07-17')

예제 결과: 2022-07-17

to_iso8601(타임스탬프), to_iso8601(날짜)

varchar

입력에 대한 ISO 8601 형식 문자열을 반환합니다.

SELECT to_iso8601(from_iso8601_date('2022-06-17'))

예제 결과: 2022-06-17

from_milliseconds(bigint)

타임스탬프

SELECT from_milliseconds(1)

예제 결과: 1970-01-01 00:00:00.001000000

from_nanoseconds(bigint)

타임스탬프

select from_nanoseconds(300000001)

예제 결과: 1970-01-01 00:00:00.300000001

from_unixtime(이중)

타임스탬프

제공된 unixtime에 해당하는 타임스탬프를 반환합니다.

SELECT from_unixtime(1)

예제 결과: 1970-01-01 00:00:01.000000000

현지 시간

시간

현재 시간을 UTC로 반환합니다. 사용된 괄호가 없습니다.

SELECT localtime

예제 결과: 17:58:22.654000000

참고

이는 예약된 키워드이기도 합니다. 예약된 키워드 목록은 섹션을 참조하세요예약어.

localtimestamp

타임스탬프

현재 타임스탬프를 UTC로 반환합니다. 사용된 괄호가 없습니다.

SELECT localtimestamp

예제 결과: 2022-07-07 17:59:04.368000000

참고

이는 예약된 키워드이기도 합니다. 예약된 키워드 목록은 섹션을 참조하세요예약어.

to_milliseconds(일에서 초 간격), to_milliseconds(타임스탬프)

bigint

SELECT to_milliseconds(INTERVAL '2' DAY + INTERVAL '3' HOUR)

예제 결과: 183600000

SELECT to_milliseconds(TIMESTAMP '2022-06-17 17:44:43.771000000')

예제 결과: 1655487883771

to_nanoseconds(일에서 초 간격), to_nanoseconds(timestamp)

bigint

SELECT to_nanoseconds(INTERVAL '2' DAY + INTERVAL '3' HOUR)

예제 결과: 183600000000000

SELECT to_nanoseconds(TIMESTAMP '2022-06-17 17:44:43.771000678')

예제 결과: 1655487883771000678

to_unixtime(타임스탬프)

double

제공된 타임스탬프에 대한 unixtime을 반환합니다.

SELECT to_unixtime('2022-06-17 17:44:43.771000000')

예제 결과: 1.6554878837710001E9

date_trunc(단위, 타임스탬프)

타임스탬프

잘린 타임스탬프를 단위로 반환합니다. 여기서 단위는 [초, 분, 시간, 일, 주, 월, 분기 또는 연도] 중 하나입니다.

SELECT date_trunc('minute', TIMESTAMP '2022-06-17 17:44:43.771000000')

예제 결과: 2022-06-17 17:44:00.000000000

간격 및 기간

Timestream for LiveAnalytics 는 날짜 및 시간에 대해 다음 간격 및 기간 함수를 지원합니다.

함수 출력 데이터 유형 설명

date_add(unit, bigint, date), date_add(unit, bigint, time), date_add(varchar(x), bigint, timestamp)

타임스탬프

단위의 대인트를 추가합니다. 여기서 단위는 [초, 분, 시간, 일, 주, 월, 분기 또는 연도] 중 하나입니다.

SELECT date_add('hour', 9, TIMESTAMP '2022-06-17 00:00:00')

예제 결과: 2022-06-17 09:00:00.000000000

date_diff(단위, 날짜, 날짜) , date_diff(단위, 시간, 시간) , date_diff(단위, 타임스탬프, 타임스탬프)

bigint

단위가 [초, 분, 시간, 일, 주, 월, 분기 또는 연도] 중 하나인 차이를 반환합니다.

SELECT date_diff('day', DATE '2020-03-01', DATE '2020-03-02')

예제 결과: 1

parse_duration(문자열)

interval

입력 문자열을 구문 분석하여 interval 동등한 문자열을 반환합니다.

SELECT parse_duration('42.8ms')

예제 결과: 0 00:00:00.042800000

SELECT typeof(parse_duration('42.8ms'))

예제 결과: interval day to second

bin(타임스탬프, 간격)

타임스탬프

timestamp 파라미터의 정수 값을 파라미터 정수 interval 값의 가장 가까운 배수로 반올림합니다.

이 반환 값의 의미는 명확하지 않을 수 있습니다. 먼저 타임스탬프 정수를 간격 정수로 나눈 다음 결과에 간격 정수를 곱하여 정수 산술을 사용하여 계산합니다.

타임스탬프는 UTC 시점을 POSIX 에포크(1970년 1월 1일) 이후 경과된 초 단위의 수로 지정하므로 반환 값은 달력 단위와 거의 정렬되지 않습니다. 예를 들어 간격을 30일로 지정하면 에폭이 30일 단위로 분할되고 가장 최근 30일 증분의 시작이 반환되며, 이는 역월과 관련이 없습니다.

여기 몇 가지 예가 있습니다:

bin(TIMESTAMP '2022-06-17 10:15:20', 5m) ==> 2022-06-17 10:15:00.000000000 bin(TIMESTAMP '2022-06-17 10:15:20', 1d) ==> 2022-06-17 00:00:00.000000000 bin(TIMESTAMP '2022-06-17 10:15:20', 10day) ==> 2022-06-17 00:00:00.000000000 bin(TIMESTAMP '2022-06-17 10:15:20', 30day) ==> 2022-05-28 00:00:00.000000000

전(간격)

타임스탬프

current_timestamp에 해당하는 값을 반환합니다interval.

SELECT ago(1d)

예제 결과: 2022-07-06 21:08:53.245000000

1시간, 1일, 30분과 같은 간격 리터럴

interval

간격 리터럴은 parse_duration(문자열)의 편리함입니다. 예를 들어 1dparse_duration('1d')와 동일합니다. 이를 통해 간격이 사용되는 모든 곳에서 리터럴을 사용할 수 있습니다. 예: ago(1d)bin(<timestamp>, 1m).

일부 간격 리터럴은 parse_duration의 약어 역할을 합니다. 예를 들어 , parse_duration('1d'), 및 1dparse_duration('1day') 1day는 유형이 1 00:00:00.000000000인를 반환합니다interval day to second. 에 제공된 형식으로 공백이 허용됩니다parse_duration. 예를 들어 parse_duration('1day')도 반환합니다00:00:00.000000000. 하지만 간격 리터럴1 day은 아닙니다.

와 관련된 단위는 ns, 나노초, us, 마이크로초, ms, 밀리초, s, 초, m, 분, h, 시간, d, 일interval day to second입니다.

또한 도 있습니다interval year to month. 년에서 월 사이의 간격과 관련된 단위는 y, 년 및 월입니다. 예를 들어는를 SELECT 1year 반환합니다1-0. SELECT 12month도를 반환1-0합니다.는를 SELECT 8month 반환합니다0-8.

의 단위quarterdate_trunc 및와 같은 일부 함수에서도 사용할 수 있지만 date_addquarter는 간격 리터럴의 일부로 사용할 수 없습니다.

서식 지정 및 구문 분석

Timestream for LiveAnalytics 는 날짜 및 시간에 대해 다음과 같은 형식 지정 및 구문 분석 함수를 지원합니다.

함수 출력 데이터 유형 설명

date_format(timestamp, varchar(x))

varchar

이 함수에서 사용하는 형식 지정자에 대한 자세한 내용은 https://trino.io/docs/current/functions/datetime.html#mysql-date-functions를 참조하세요.

SELECT date_format(TIMESTAMP '2019-10-20 10:20:20', '%Y-%m-%d %H:%i:%s')

예제 결과: 2019-10-20 10:20:20

date_parse(varchar(x), varchar(y))

타임스탬프

이 함수에서 사용하는 형식 지정자에 대한 자세한 내용은 https://trino.io/docs/current/functions/datetime.html#mysql-date-functions를 참조하세요.

SELECT date_parse('2019-10-20 10:20:20', '%Y-%m-%d %H:%i:%s')

예제 결과: 2019-10-20 10:20:20.000000000

format_datetime(timestamp, varchar(x))

varchar

이 함수에서 사용하는 형식 문자열에 대한 자세한 내용은 http://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html을 참조하세요.

SELECT format_datetime(parse_datetime('1968-01-13 12', 'yyyy-MM-dd HH'), 'yyyy-MM-dd HH')

예제 결과: 1968-01-13 12

parse_datetime(varchar(x), varchar(y))

타임스탬프

이 함수에서 사용하는 형식 문자열에 대한 자세한 내용은 http://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html을 참조하세요.

SELECT parse_datetime('2019-12-29 10:10 PST', 'uuuu-LL-dd HH:mm z')

예제 결과: 2019-12-29 18:10:00.000000000

추출

Timestream for LiveAnalytics 는 날짜 및 시간에 대해 다음 추출 함수를 지원합니다. 추출 함수는 나머지 편의 함수의 기본입니다.

함수 출력 데이터 유형 설명

extract

bigint

타임스탬프에서 필드를 추출합니다. 여기서 필드는 [YEAR, QUARTER, Word, MONTH, DAYWEEK, Word, DAY_OF_MONTH, DAY_OF_WEEK, DOW, DAY_OF_YEAR, DOY, YEAR_OF_WEEK, Word, YOW, HOUR, MINUTE 또는 SECOND] 중 하나입니다.

SELECT extract(YEAR FROM '2019-10-12 23:10:34.000000000')

예제 결과: 2019

일(타임스탬프), 일(날짜), 일(간격 요일~초)

bigint

SELECT day('2019-10-12 23:10:34.000000000')

예제 결과: 12

day_of_month(타임스탬프), day_of_month(date), day_of_month(간격 요일에서 초)

bigint

SELECT day_of_month('2019-10-12 23:10:34.000000000')

예제 결과: 12

day_of_week(타임스탬프), day_of_week(date)

bigint

SELECT day_of_week('2019-10-12 23:10:34.000000000')

예제 결과: 6

day_of_year(타임스탬프), day_of_year(date)

bigint

SELECT day_of_year('2019-10-12 23:10:34.000000000')

예제 결과: 285

dow(타임스탬프), dow(날짜)

bigint

day_of_week의 별칭

doy(타임스탬프), doy(날짜)

bigint

day_of_year의 별칭

시간(타임스탬프), 시간(시간), 시간(일-초 간격)

bigint

SELECT hour('2019-10-12 23:10:34.000000000')

예제 결과: 23

밀리초(타임스탬프), 밀리초(시간), 밀리초(일-초 간격)

bigint

SELECT millisecond('2019-10-12 23:10:34.000000000')

예제 결과: 0

분(타임스탬프), 분(시간), 분(일-초 간격)

bigint

SELECT minute('2019-10-12 23:10:34.000000000')

예제 결과: 10

month(timestamp), month(date), month(interval year to month)

bigint

SELECT month('2019-10-12 23:10:34.000000000')

예제 결과: 10

nanosecond(타임스탬프), nanosecond(시간), nanosecond(일에서 초 간격)

bigint

SELECT nanosecond(current_timestamp)

예제 결과: 162000000

quarter(timestamp), quarter(date)

bigint

SELECT quarter('2019-10-12 23:10:34.000000000')

예제 결과: 4

second(timestamp), second(time), second(간격 요일에서 초)

bigint

SELECT second('2019-10-12 23:10:34.000000000')

예제 결과: 34

week(timestamp), week(date)

bigint

SELECT week('2019-10-12 23:10:34.000000000')

예제 결과: 41

week_of_year(타임스탬프), week_of_year(date)

bigint

주별 별칭

year(timestamp), year(date), year(interval year to month)

bigint

SELECT year('2019-10-12 23:10:34.000000000')

예제 결과: 2019

year_of_week(타임스탬프), year_of_week(날짜)

bigint

SELECT year_of_week('2019-10-12 23:10:34.000000000')

예제 결과: 2019

yow(타임스탬프), yow(날짜)

bigint

year_of_week의 별칭