

# 날짜 함수
<a name="s3-select-sql-reference-date"></a>

**중요**  
신규 고객은 더 이상 Amazon S3 Select를 사용할 수 없습니다. Amazon S3 Select 기존 고객은 평소처럼 이 기능을 계속 사용할 수 있습니다. [자세히 알아보기](https://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/) 

Amazon S3 Select는 다음과 같은 날짜 함수를 지원합니다.

**Topics**
+ [DATE\$1ADD](#s3-select-sql-reference-date-add)
+ [DATE\$1DIFF](#s3-select-sql-reference-date-diff)
+ [EXTRACT](#s3-select-sql-reference-extract)
+ [TO\$1STRING](#s3-select-sql-reference-to-string)
+ [TO\$1TIMESTAMP](#s3-select-sql-reference-to-timestamp)
+ [UTCNOW](#s3-select-sql-reference-utcnow)

## DATE\$1ADD
<a name="s3-select-sql-reference-date-add"></a>

날짜 부분, 양, 그리고 타임스탬프가 주어질 경우 `DATE_ADD`는 그 날짜 부분을 그 수량으로 변환하여 업데이트된 타임스탬프를 반환합니다.

### 구문
<a name="s3-select-sql-reference-date-add-syntax"></a>

```
DATE_ADD( date_part, quantity, timestamp )
```

### 파라미터
<a name="s3-select-sql-reference-date-add-parameters"></a>

*`date_part`*   
날짜의 어느 부분을 수정할지 지정합니다. 이것은 다음 중 하나가 될 수 있습니다.  
+ 년
+ 개월
+ day
+ 시간
+ minute
+ 초

 *`quantity`*   
업데이트된 타임스탬프에 적용되는 값입니다. 이 `quantity`가 양의 값이면 타임스탬프의 날짜 부분이 증가하고 음의 값이면 감소합니다.

 *`timestamp`*   
함수가 실행되는 대상 타임스탬프입니다.

### 예제
<a name="s3-select-sql-reference-date-add-examples"></a>

```
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\$1DIFF
<a name="s3-select-sql-reference-date-diff"></a>

날짜 부분 1개와 유효한 타임스탬프 2개가 주어질 경우, `DATE_DIFF`는 날짜 부분들의 차이점을 반환합니다. `date_part`의 `timestamp1` 값이 `date_part`의 `timestamp2` 값보다 더 클 경우 반환 값은 음의 정수입니다. `date_part`의 `timestamp1` 값이 `date_part`의 `timestamp2` 값보다 더 작을 경우 반환 값은 양의 정수입니다.

### 구문
<a name="s3-select-sql-reference-date-diff-syntax"></a>

```
DATE_DIFF( date_part, timestamp1, timestamp2 )
```

### 파라미터
<a name="s3-select-sql-reference-date-diff-parameters"></a>

 **`date_part`**   
타임스탬프들의 어느 부분을 비교할지 지정합니다. `date_part`의 정의에 대해서는 [DATE\$1ADD](#s3-select-sql-reference-date-add) 단원을 참조하십시오.

 **`timestamp1`**   
비교할 첫 번째 타임스탬프입니다.

 **`timestamp2`**   
비교할 두 번째 타임스탬프입니다.

### 예제
<a name="s3-select-sql-reference-date-diff-examples"></a>

```
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
<a name="s3-select-sql-reference-extract"></a>

날짜 부분 1개와 타임스탬프 1개가 주어질 경우, `EXTRACT`는 타임스탬프의 날짜 부분 값을 반환합니다.

### 구문
<a name="s3-select-sql-reference-extract-syntax"></a>

```
EXTRACT( date_part FROM timestamp )
```

### 파라미터
<a name="s3-select-sql-reference-extract-parameters"></a>

 **`date_part`**   
타임스탬프들의 어느 부분을 추출할지 지정합니다. 이것은 다음 중 하나가 될 수 있습니다.  
+ `YEAR`
+ `MONTH`
+ `DAY`
+ `HOUR`
+ `MINUTE`
+ `SECOND`
+ `TIMEZONE_HOUR`
+ `TIMEZONE_MINUTE`

 **`timestamp`**   
함수가 실행되는 대상 타임스탬프입니다.

### 예제
<a name="s3-select-sql-reference-extract-examples"></a>

```
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\$1STRING
<a name="s3-select-sql-reference-to-string"></a>

타임스탬프와 형식 패턴이 주어질 경우, `TO_STRING`은 타임스탬프의 문자열 표현을 그 형식으로 반환합니다.

### 구문
<a name="s3-select-sql-reference-size-syntax"></a>

```
TO_STRING ( timestamp time_format_pattern )
```

### 파라미터
<a name="s3-select-sql-reference-size-parameters"></a>

 *`timestamp`*   
함수가 실행되는 대상 타임스탬프입니다.

 *`time_format_pattern`*   
문자에 대해 다음과 같이 특수하게 해석하는 문자열입니다.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/s3-select-sql-reference-date.html)

### 예제
<a name="s3-select-sql-reference-size-examples"></a>

```
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\$1TIMESTAMP
<a name="s3-select-sql-reference-to-timestamp"></a>

문자열이 주어질 경우 `TO_TIMESTAMP`는 문자열을 타임스탬프로 변환합니다. `TO_TIMESTAMP`는 `TO_STRING`의 역연산입니다.

### 구문
<a name="s3-select-sql-reference-to-timestamp-syntax"></a>

```
TO_TIMESTAMP ( string )
```

### 파라미터
<a name="s3-select-sql-reference-to-timestamp-parameters"></a>

 *`string`*   
함수가 실행되는 대상 문자열입니다.

### 예제
<a name="s3-select-sql-reference-to-timestamp-examples"></a>

```
TO_TIMESTAMP('2007T')                         -- `2007T`
TO_TIMESTAMP('2007-02-23T12:14:33.079-08:00') -- `2007-02-23T12:14:33.079-08:00`
```

## UTCNOW
<a name="s3-select-sql-reference-utcnow"></a>

`UTCNOW`는 현재 시간(UTC)을 타임스탬프로 반환합니다.

### 구문
<a name="s3-select-sql-reference-utcnow-syntax"></a>

```
UTCNOW()
```

### 파라미터
<a name="s3-select-sql-reference-utcnow-parameters"></a>

`UTCNOW`는 파라미터를 사용하지 않습니다.

### 예제
<a name="s3-select-sql-reference-utcnow-examples"></a>

```
UTCNOW() -- 2017-10-13T16:02:11.123Z
```