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