날짜/시간 함수 - Amazon Timestream

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

날짜/시간 함수

참고

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

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

일반 및 변환

의 Timestream은 날짜 및 시간에 대해 다음과 같은 일반 및 변환 함수를 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

~_nanoseconds(간격 날짜에서 초), ~_nanoseconds(타임스탬프)

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은 날짜 및 시간에 대해 다음과 같은 간격 및 기간 함수를 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('1day'), parse_duration('1d'), 및 1d1day는 유형이 1 00:00:00.000000000인를 반환합니다interval day to second. 공백은에 제공된 형식으로 허용됩니다parse_duration. 예를 들어 parse_duration('1day')도 반환합니다00:00:00.000000000. 하지만 간격 리터럴1 day은 아닙니다.

와 관련된 단위는 ns, nanosecond, us, microsecond, ms, millisecond, s, second, m, minute, h, hour, d, dayinterval 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은 날짜 및 시간에 대해 다음과 같은 형식 지정 및 구문 분석 함수를 LiveAnalytics 지원합니다.

함수 출력 데이터 유형 설명

date_format(타임스탬프, 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은 날짜 및 시간에 대해 다음과 같은 추출 함수를 LiveAnalytics 지원합니다. 추출 함수는 나머지 편의 함수의 기반입니다.

함수 출력 데이터 유형 설명

extract

bigint

타임스탬프에서 필드를 추출합니다. 여기서 필드는 [YEAR, , QUARTER, MONTH, WEEK, DAY_OF_MONTH, DAYDAY_OF_WEEK, DOW, DAY_OF_YEAR, DOY, YEARWEEKYOW, 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(타임스탬프), month(date), month(간격 연도-월)

bigint

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

예제 결과: 10

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

bigint

SELECT nanosecond(current_timestamp)

예제 결과: 162000000

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

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

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

bigint

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

예제 결과: 41

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

bigint

주별 별칭

year(타임스탬프), year(date), year(간격 연도-월)

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의 별칭