TIMEDIFF

개요

선택한 컬럼 끼리 혹은 원하는 데이터와 컬럼 간의 시간 차이를 구해주는 명령어 입니다.

설명

MySQL에서 사용되는 DATEDIFF, TIMESTAMPDIFF 명령어와 같이 시간 차이를 구해주는 명령어 입니다.

UNIT에는 second, minute, hour, day, week를 기준으로 단위 시간을 지정할 수 있습니다.

second, minute, hour는 소수점 까지 day, week는 반올림을 기준으로 합니다.

TIME1에는 원하는 컬럼 혹은 원하는 시간의 데이터를 넣을 수 있습니다.

TIME2에는 원하는 컬럼의 데이터만 넣을 수 있습니다.

(TIME1 혹은 TIME2에 잘못된 컬럼을 입력시 None값을 반환합니다.)

OPTION은 TIME에 시간의 데이터를 넣었을시 TIME의 format을 설정할 수 있습니다.

col_name은 결과 컬럼명을 RESULT를 제외한 컬럼명으로 변경할 수 있습니다.

Parameters

... | timediff UNIT 'TIME1' 'TIME2'
... | timediff UNIT 'TIME1' "OPTION" 'TIME2'
... | timediff UNIT 'TIME1' 'TIME2' AS col_name

이름

설명

필수/옵션

UNIT

단위 시간의 기준을 입력합니다.

필수

TIME

비교하고싶은 컬럼 혹은 시간을 입력합니다.

필수

OPTION

시간을 입력했을때 TIME의 format을 설정할 수 있습니다.

옵션

AS

Spark SQL의 as에 해당합니다.

옵션

col_name

결과 컬럼명을 설정할 수 있습니다.

옵션

  • 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 '20200729160315' "YYYYMMDDHHmmss" '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