일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- string
- Google Excel
- django
- Tkinter
- list
- GIT
- matplotlib
- Java
- PostgreSQL
- Excel
- 파이썬
- google apps script
- array
- math
- c#
- Kotlin
- Github
- PANDAS
- dataframe
- numpy
- SQL
- Redshift
- gas
- Python
- Google Spreadsheet
- Mac
- Apache
- hive
- PySpark
- Today
- Total
달나라 노트
Hive : datediff (두 날짜 간의 차이 구하기, 두 시점 차이를 일단위로 구하기) 본문
Hive : datediff (두 날짜 간의 차이 구하기, 두 시점 차이를 일단위로 구하기)
CosmosProject 2023. 10. 10. 23:12
Syntax
datediff(timestamp_1, timestamp_2)
(timestamp_1 - timestamp_2) 를 계산하여 일(day) 단위로 return합니다.
select current_timestamp
, date_add(current_timestamp, 30)
, datediff(date_add(current_timestamp, 30), current_timestamp)
;
-- Result
2023-10-10 12:31:20.122000000
2023-11-09
30
date_add는 어떤 시점에 특정 일수를 더해줍니다.
- datediff(date_add(current_timestamp, 30), current_timestamp)
따라서 위 구문은 아래와 동일합니다.
datediff(2023-11-09, 2023-10-10)
2023-11-09와
2023-10-10 간의 차이를 일(day) 단위로 return하게 되고,
(2023-11-09 - 2023-10-10) 을 계산하여 30이 return됩니다.
select current_timestamp
, date_add(current_timestamp, 30)
, datediff(current_timestamp, date_add(current_timestamp, 30))
;
-- Result
2023-10-10 12:31:20.122000000
2023-11-09
-30
- datediff(current_timestamp, date_add(current_timestamp, 30))
이 예시는 위에서 봤던 것과 동일하지만 순서가 다릅니다.
datediff(2023-10-10, 2023-11-09)
따라서 위왁와 같이 수정할 수 있습니다.
(2023-10-10 - 2023-11-09)를 계산하여 -30을 return합니다.
그리고 datediff() 함수의 또 다른 특징은 두 시점간의 차이를 일단위로 return한다는 것입니다.
select datediff(timestamp '2023-11-13 20:00:00', timestamp '2023-11-12 00:00:00')
;
-- Result
1
위 예시를 보면
2023-11-13 20:00:00
2023-11-12 00:00:00
이 두 시점간의 차이이므로 24시간 + 20시간인 44시간의 차이가 있습니다.
하지만 44시간은 2일(= 48시간)을 채우지 못하므로 1일을 채우지 못하는 시간은 모두 버리고 1(일, day)을 return합니다.
'SQL > Apache Hive' 카테고리의 다른 글
Hive : concat() (문자열 연결하기) (0) | 2023.10.13 |
---|---|
Hive : unix_timestamp를 이용해서 두 시점간의 차이 구하기 (2) | 2023.10.10 |
Hive : extract (날짜에서 특정 요소 추출하기, 시간 추출, 년도 추출, 주차 추출, 요일 추출) (0) | 2023.10.10 |
Hive : dayofmonth, dayofweek, weekofyear (일 추출, 요일 추출, 주차 번호 추출, weeknumber, day, weekday) (0) | 2023.10.10 |
Hive : current_timestamp (현재 시간, 현재 시점 얻기, 현재 timestamp 얻기) (0) | 2023.10.10 |