날짜 함수
Amazon S3 Select는 다음과 같은 날짜 함수를 지원합니다.
DATE_ADD
날짜 부분, 양, 그리고 타임스탬프가 주어질 경우 DATE_ADD
는 그 날짜 부분을 그 수량으로 변환하여 업데이트된 타임스탬프를 반환합니다.
구문
DATE_ADD(
date_part
,quantity
,timestamp
)
파라미터
date_part
-
날짜의 어느 부분을 수정할지 지정합니다. 이것은 다음 중 하나가 될 수 있습니다.
-
년
-
개월
-
day
-
시간
-
minute
-
초
-
-
quantity
-
업데이트된 타임스탬프에 적용되는 값입니다. 이
가 양의 값이면 타임스탬프의 날짜 부분이 증가하고 음의 값이면 감소합니다.quantity
-
timestamp
-
함수가 실행되는 대상 타임스탬프입니다.
예시
DATE_ADD(year, 5, `2010-01-01T`) -- 2015-01-01 (equivalent to 2015-01-01T) DATE_ADD(month, 1, `2010T`) -- 2010-02T (result will add precision as necessary) DATE_ADD(month, 13, `2010T`) -- 2011-02T DATE_ADD(day, -1, `2017-01-10T`) -- 2017-01-09 (equivalent to 2017-01-09T) DATE_ADD(hour, 1, `2017T`) -- 2017-01-01T01:00-00:00 DATE_ADD(hour, 1, `2017-01-02T03:04Z`) -- 2017-01-02T04:04Z DATE_ADD(minute, 1, `2017-01-02T03:04:05.006Z`) -- 2017-01-02T03:05:05.006Z DATE_ADD(second, 1, `2017-01-02T03:04:05.006Z`) -- 2017-01-02T03:04:06.006Z
DATE_DIFF
날짜 부분 1개와 유효한 타임스탬프 2개가 주어질 경우, DATE_DIFF
는 날짜 부분들의 차이점을 반환합니다.
의 date_part
값이 timestamp1
의 date_part
값보다 더 클 경우 반환 값은 음의 정수입니다. timestamp2
의 date_part
값이 timestamp1
의 date_part
값보다 더 작을 경우 반환 값은 양의 정수입니다.timestamp2
구문
DATE_DIFF(
date_part
,timestamp1
,timestamp2
)
파라미터
-
date_part
-
타임스탬프들의 어느 부분을 비교할지 지정합니다.
date_part
의 정의에 대해서는 DATE_ADD 단원을 참조하십시오. -
timestamp1
-
비교할 첫 번째 타임스탬프입니다.
-
timestamp2
-
비교할 두 번째 타임스탬프입니다.
예시
DATE_DIFF(year, `2010-01-01T`, `2011-01-01T`) -- 1 DATE_DIFF(year, `2010T`, `2010-05T`) -- 4 (2010T is equivalent to 2010-01-01T00:00:00.000Z) DATE_DIFF(month, `2010T`, `2011T`) -- 12 DATE_DIFF(month, `2011T`, `2010T`) -- -12 DATE_DIFF(day, `2010-01-01T23:00`, `2010-01-02T01:00`) -- 0 (need to be at least 24h apart to be 1 day apart)
EXTRACT
날짜 부분 1개와 타임스탬프 1개가 주어질 경우, EXTRACT
는 타임스탬프의 날짜 부분 값을 반환합니다.
구문
EXTRACT(
date_part
FROMtimestamp
)
파라미터
-
date_part
-
타임스탬프들의 어느 부분을 추출할지 지정합니다. 이것은 다음 중 하나가 될 수 있습니다.
-
YEAR
-
MONTH
-
DAY
-
HOUR
-
MINUTE
-
SECOND
-
TIMEZONE_HOUR
-
TIMEZONE_MINUTE
-
-
timestamp
-
함수가 실행되는 대상 타임스탬프입니다.
예시
EXTRACT(YEAR FROM `2010-01-01T`) -- 2010 EXTRACT(MONTH FROM `2010T`) -- 1 (equivalent to 2010-01-01T00:00:00.000Z) EXTRACT(MONTH FROM `2010-10T`) -- 10 EXTRACT(HOUR FROM `2017-01-02T03:04:05+07:08`) -- 3 EXTRACT(MINUTE FROM `2017-01-02T03:04:05+07:08`) -- 4 EXTRACT(TIMEZONE_HOUR FROM `2017-01-02T03:04:05+07:08`) -- 7 EXTRACT(TIMEZONE_MINUTE FROM `2017-01-02T03:04:05+07:08`) -- 8
TO_STRING
타임스탬프와 형식 패턴이 주어질 경우, TO_STRING
은 타임스탬프의 문자열 표현을 그 형식으로 반환합니다.
구문
TO_STRING (
timestamp
time_format_pattern
)
파라미터
-
timestamp
-
함수가 실행되는 대상 타임스탬프입니다.
-
time_format_pattern
-
문자에 대해 다음과 같이 특수하게 해석하는 문자열입니다.
형식
예
설명
yy
69
2자리 연도
y
1969
4자리 연도
yyyy
1969
제로 패딩된 4자리 연도
M
1
연 기준 월
MM
01
제로 패딩된 연 기준 월
MMM
Jan
약어 형태의 월 이름
MMMM
January
월의 전체 이름
MMMMM
J
월의 첫 번째 글자(참고: 이 형식은
TO_TIMESTAMP
함수와 사용할 경우 유효하지 않음)d
2
일(1~31)
dd
02
제로 패딩된 일(01~31)
a
AM
하루 중 AM 또는 PM
h
3
시간(1~12)
hh
03
제로 패딩된 시간(01~12)
H
3
시간(0~23)
HH
03
제로 패딩된 시간(00~23)
m
4
분(0~59)
mm
04
제로 패딩된 분(00~59)
s
5
초(0~59)
ss
05
제로 패딩된 초(00~59)
S
0
몇 분의 1초(정밀도: 0.1, 범위: 0.0~0.9)
SS
6
몇 분의 1초(정밀도: 0.01, 범위: 0.0~0.99)
SSS
60
몇 분의 1초(정밀도: 0.001, 범위: 0.0~0.999)
…
…
…
SSSSSSSSS
60000000
몇 분의 1초(최대 정밀도: 1나노초, 범위: 0.0~0.999999999)
n
60000000
나노초
X
+07
또는Z
시간 단위로 표시한 오프셋. 오프셋이 0인 경우
Z
XX
또는XXXX
+0700
또는Z
시간과 분 단위로 표시한 오프셋. 오프셋이 0인 경우
Z
XXX
또는XXXXX
+07:00
또는Z
시간과 분 단위로 표시한 오프셋. 오프셋이 0인 경우
Z
x
7
시간 단위로 표시한 오프셋
xx
또는xxxx
700
시간과 분 단위로 표시한 오프셋
xxx
또는xxxxx
+07:00
시간과 분 단위로 표시한 오프셋
예시
TO_STRING(`1969-07-20T20:18Z`, 'MMMM d, y') -- "July 20, 1969" TO_STRING(`1969-07-20T20:18Z`, 'MMM d, yyyy') -- "Jul 20, 1969" TO_STRING(`1969-07-20T20:18Z`, 'M-d-yy') -- "7-20-69" TO_STRING(`1969-07-20T20:18Z`, 'MM-d-y') -- "07-20-1969" TO_STRING(`1969-07-20T20:18Z`, 'MMMM d, y h:m a') -- "July 20, 1969 8:18 PM" TO_STRING(`1969-07-20T20:18Z`, 'y-MM-dd''T''H:m:ssX') -- "1969-07-20T20:18:00Z" TO_STRING(`1969-07-20T20:18+08:00Z`, 'y-MM-dd''T''H:m:ssX') -- "1969-07-20T20:18:00Z" TO_STRING(`1969-07-20T20:18+08:00`, 'y-MM-dd''T''H:m:ssXXXX') -- "1969-07-20T20:18:00+0800" TO_STRING(`1969-07-20T20:18+08:00`, 'y-MM-dd''T''H:m:ssXXXXX') -- "1969-07-20T20:18:00+08:00"
TO_TIMESTAMP
문자열이 주어질 경우 TO_TIMESTAMP
는 문자열을 타임스탬프로 변환합니다. TO_TIMESTAMP
는 TO_STRING
의 역연산입니다.
구문
TO_TIMESTAMP (
string
)
파라미터
-
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
는 현재 시간(UTC)을 타임스탬프로 반환합니다.
구문
UTCNOW()
파라미터
UTCNOW
는 파라미터를 사용하지 않습니다.
예시
UTCNOW() -- 2017-10-13T16:02:11.123Z