일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- math
- Excel
- Python
- dataframe
- hive
- Google Spreadsheet
- array
- Apache
- PySpark
- PostgreSQL
- gas
- GIT
- matplotlib
- Github
- list
- Google Excel
- Kotlin
- numpy
- google apps script
- Tkinter
- c#
- Redshift
- string
- PANDAS
- SQL
- Mac
- Java
- 파이썬
- django
- Today
- Total
달나라 노트
Presto : date_add() (시간 더하기, 날짜 더하기, 특정 기간 더하기) 본문
Presto의 date_add() 함수는 어떤 시점에 특정 시간 간격(년, 월, 일, 분기, 주, 시간, 분, 초, 밀리초)을 더하고 빼는 역할을 해줍니다.
Syntax
date_add(unit, value, timestamp)
- unit
더할 시간 간격의 단위를 의미합니다.
year -> 년
month -> 월
day -> 일
quarter -> 분기
week -> 주차
dayofweek -> 요일
hour -> 시
minute -> 분
second -> 초
millisecond -> 밀리초
- value
더할 시간 간격을 의미합니다.
더하고싶으면 양수를 쓰면 되고, 빼고 싶으면 음수를 적으면 됩니다.
- timestamp
value를 더할 대상이 되는 timestamp입니다.
timestamp 뿐 아니라 date, time 등의 형식도 올 수 있습니다.
다만, date, time, timestamp가 아닌 문자, 일반 숫자 등이 오면 에러가 발생합니다.
결과적으로 date_add 함수는 timestamp + value(단위 = unit)의 값을 계산하여 return합니다.
select date_add('year', 3, timestamp '2023-10-05 13:51:24.2834')
;
-- Result
2026-10-05 13:51:24
- date_add('year', 3, timestamp '2023-10-05 13:51:24.2834')
2023-10-05 13:51:24.2834 에서 3(year)를 더합니다.
따라서 2026-10-05 13:51:24를 더합니다.
select date_add('month', 2, timestamp '2023-10-05 13:51:24.2834')
;
-- Result
2023-12-05 13:51:24
2023-10-05 13:51:24 에서 2 개월(month)을 더합니다.
따라서 2023-12-05 13:51:24가 return됩니다.
모두 다 이런 방식입니다.
아래에는 이와 동일한 방식으로 unit을 변화하여 사용한 예시입니다.
select date_add('day', 13, timestamp '2023-10-05 13:51:24.2834')
;
-- Result
2023-10-18 13:51:24
13 일(day)을 더하는 예시입니다.
select date_add('quarter', 3, timestamp '2023-10-05 13:51:24.2834')
;
-- Result
2024-07-05 13:51:24
3 분기(quarter)를 더하는 예시입니다.
3분기이면 9개월이므로 2023-10-05 13:51:24에서 9개월을 더한 2024-07-05 13:51:24를 return합니다.
select date_add('week', 3, timestamp '2023-10-05 13:51:24.2834')
;
-- Result
2023-10-26 13:51:24
3 주(week)를 더하는 예시입니다.
3주는 21일이므로 2023-10-05 13:51:24에서 21일을 더한 2023-10-26 13:51:24가 return됩니다.
select date_add('hour', 10, timestamp '2023-10-05 13:51:24.2834')
;
-- Result
2023-10-05 23:51:24
10 시간(hour)을 더하는 예시입니다.
select date_add('minute', 5, timestamp '2023-10-05 13:51:24.2834')
;
-- Result
2023-10-05 13:56:24
5 분(minute)을 더하는 예시입니다.
select date_add('second', 80, timestamp '2023-10-05 13:51:24.2834')
;
-- Result
2023-10-05 13:52:44
80 초(second)를 더하는 예시입니다.
13:51:24에서 80초를 더하면 13:52:44가 되므로 2023-10-05 13:52:44가 return됩니다.
select date_add('millisecond', 900, timestamp '2023-10-05 13:51:24.2834')
;
-- Result
2023-10-05 13:51:25
900 밀리초(millisecond)를 더하는 예시입니다.
13:51:24.2834에 900millisecond(= 0.900s)를 더하면 13:51:25.1834가 되므로,
2023-10-05 13:51:25가 return된 것을 볼 수 있습니다.
select date_add('day', -20, timestamp '2023-10-05 13:51:24.2834')
, date_add('hour', -10, timestamp '2023-10-05 13:51:24.2834')
;
-- Result
2023-09-15 13:51:24
2023-10-05 03:51:24
만약 어떤 시간 간격을 빼고싶으면 위처럼 value 값을 음수로 적어주면 됩니다.
'SQL > Presto' 카테고리의 다른 글
Presto : date_diff() (두 시점 간의 차이 구하기, 시간 차이) (2) | 2023.10.10 |
---|---|
Presto : interval (날짜 시간 더하기. 날짜 시간 빼기) (0) | 2022.01.14 |
Presto : date, timestamp (날짜 형식의 문자를 date 형식으로 변경. 날짜 형식의 문자를 timestamp 형식으로 변경.) (0) | 2022.01.14 |
Presto : current_date (현재 날짜. 현재 날짜 return. Presto 현재 날짜. 오늘 날짜) (0) | 2022.01.14 |