timediff
개요
선택한 컬럼 끼리 혹은 원하는 데이터와 컬럼 간의 시간 차이를 구해주는 명령어 입니다.
타입
TEXT, DATE, TIMESTAMP
설명
UNIT에는 second, minute, hour, day, week를 기준으로 단위 시간을 지정할 수 있습니다.
second, minute, hour는 소수점 까지 day, week는 반올림을 기준으로 합니다.
UNIT_OPTION은 현재 시간과 TIME1 간의 차이를 얻고 싶을때 사용할 수 있습니다.
TIME1에는 원하는 컬럼 혹은 원하는 시간의 데이터를 넣을 수 있습니다.
TIME2에는 원하는 컬럼의 데이터만 넣을 수 있습니다.
(TIME1 혹은 TIME2에 잘못된 컬럼을 입력시 None값을 반환합니다.)
OPTION은 TIME에 시간의 데이터를 넣었을시 TIME의 format을 설정할 수 있습니다.
new_col은 결과 컬럼명을 RESULT를 제외한 컬럼명으로 변경할 수 있습니다.
Parameters
... | timediff UNIT TIME TIME
... | timediff UNIT TIME OPTION TIME
... | timediff UNIT TIME TIME AS new_col
이름 |
설명 |
필수/옵션 |
---|---|---|
UNIT |
단위 시간의 기준을 입력합니다. |
필수 |
TIME |
비교하고싶은 컬럼 혹은 시간을 입력합니다, 혹은 today 나 now 옵션을 사용할 수 있습니다. |
필수 |
OPTION |
시간을 입력했을때 TIME의 format을 설정할 수 있습니다. |
옵션 |
AS |
Spark SQL의 as에 해당합니다. |
옵션 |
new_col |
결과컬럼의 이름을 설정할 수 있습니다. |
옵션 |
TIME
이름 |
설명 |
필수/옵션 |
---|---|---|
today |
현재 날짜 (YYYY-MM-DD) 와 컬럼간의 비교를 위해 사용할 수 있습니다. |
옵션 |
now |
현재 시간 (YYYY-MM-DD HH:mm:ss) 과 컬럼간의 비교를 위해 사용할 수 있습니다. |
옵션 |
OPTION을 입력하지 않으면 ‘YYYY-MM-DD HH:mm:ss’가 기본 옵션입니다.
Example
예제용 데이터 모양 입니다.
Ts1 |
Ts2 |
D1 |
---|---|---|
2020-07-01 12:10:00 |
2020-07-01 12:00:00 |
2020-07-03 |
2020-08-02 10:11:10 |
2020-06-01 16:41:20 |
2020-06-01 |
2021-06-02 11:12:20 |
2022-08-02 18:32:30 |
2021-08-02 |
Ts1 컬럼과 Ts2 컬럼을
second
기준으로 차이를 구하는 예제입니다.
... | timediff second Ts1 Ts2
Ts1 |
Ts2 |
D1 |
RESULT |
---|---|---|---|
2020-07-01 12:10:00 |
2020-07-01 12:00:00 |
2020-07-03 |
600 |
2020-08-02 10:11:10 |
2020-06-01 16:41:20 |
2020-06-01 |
5333390 |
2021-06-02 11:12:20 |
2022-08-02 18:32:30 |
2021-08-02 |
36832810 |
Ts1 컬럼과 D1 컬럼을
day
기준으로 차이를 구하고 결과 컬럼명을 바꾸는 예제입니다.
... | timediff day Ts1 D1 as test
Ts1 |
Ts2 |
D1 |
test |
---|---|---|---|
2020-07-01 12:10:00 |
2020-07-01 12:00:00 |
2020-07-03 |
1.0 |
2020-08-02 10:11:10 |
2020-06-01 16:41:20 |
2020-06-01 |
62.0 |
2021-06-02 11:12:20 |
2022-08-02 18:32:30 |
2021-08-02 |
61.0 |
‘20200729160315’ Data와 Ts1 컬럼을
minute
기준으로 차이를 구하는 예제입니다.
... | timediff minute `2020-07-29 16:03:15` Ts1
Ts1 |
Ts2 |
D1 |
RESULT |
---|---|---|---|
2020-07-01 12:10:00 |
2020-07-01 12:00:00 |
2020-07-03 |
40553.25 |
2020-08-02 10:11:10 |
2020-06-01 16:41:20 |
2020-06-01 |
5407.916666666667 |
2021-06-02 11:12:20 |
2022-08-02 18:32:30 |
2021-08-02 |
443229.0833333333 |
현재 시간과 Ts1 컬럼을
hour
기준으로 차이를 구하는 예제입니다.
현재시간 : 2020-10-21 15:13:30
... | timediff hour now Ts1
Ts1 |
Ts2 |
D1 |
RESULT |
---|---|---|---|
2020-07-01 12:10:00 |
2020-07-01 12:00:00 |
2020-07-03 |
2691.0633333333335 |
2020-08-02 10:11:10 |
2020-06-01 16:41:20 |
2020-06-01 |
1925.043888888889 |
2021-06-02 11:12:20 |
2022-08-02 18:32:30 |
2021-08-02 |
5371.975555555556 |
현재 날짜와 Ts1 컬럼을
day
기준으로 차이를 구하는 예제입니다.
현재날짜 : 2020-10-21
... | timediff day Ts1 today
Ts1 |
Ts2 |
D1 |
RESULT |
---|---|---|---|
2020-07-01 12:10:00 |
2020-07-01 12:00:00 |
2020-07-03 |
111.4931 |
2020-08-02 10:11:10 |
2020-06-01 16:41:20 |
2020-06-01 |
79.5756 |
2021-06-02 11:12:20 |
2022-08-02 18:32:30 |
2021-08-02 |
224.4669 |