타임 스탬프 열에 dt_skey
이라는 열을 파생시키고 있습니다. 테이블에 타임 스탬프 열이 있습니다. 명확한 설명을 위해 타임 스탬프 열 이름을 time_column
으로 가정하십시오. 이것은 time_column이 2017-02-05 03:33:50
, dt_skey
열이 다음과 같이 보이는 것입니다. 20170205033350
은 그 사이의 기호를 제거하는 것입니다.하이브에서 타임 스탬프를 gmt 형식으로 변환하는 방법
내 질문은 여기에 : time_column
은 est timezone에 있는데, 나는 그 중에서 dt_skey
을 추출하는 동안 그것을 gmt 형식으로 변환하려고합니다. 우리가 임 프라를 통해 쿼리 할 때 timestamp가 gmt 형식으로 변환되는 이유는 dt_skey
이 int 데이터 유형이므로 변환되지 않을 것이기 때문입니다. 하이브를 통해 쿼리 할 때 타임 스탬프와 dt_skey
열이 동기화되는 하이브를 통해 처리를 수행하고 있습니다. 보고 목적과 우리는 임팔라를 사용하기 때문에 dt_skey
열을 변경하려고합니다. 그러면 임팔라를 통해 보면 열이 모두 동기화되어야합니다. 위의 쿼리는이 20170202
에이 2017-02-02 07:32:51
변환됩니다
cast(substr(regexp_replace(cast(time_column as string), '-',''),1,8) as int)as dt_skey
: 아래
내가 타임 스탬프 열에서dt_skey
열을 도출하기 위해 사용하고는 SQL이다.
dt_skey
을 GMT 형식으로 상쇄하도록 도와주세요. 나는 또한 스파크를 통한 해결책을 환영한다.
왜 mysql 태그입니까? 대시를 제거하면 "2017-02-05"가 "20170233"이 될 것이라고 확신합니까? –
내 sql 태그는 하이브가 꽤 많은 sql quires를 사용하기 때문에 날짜가 그냥 사이에 대시를 제거 할 것이기 때문에 나는 단지 질문을 편집하여 변경 사항을 확인하십시오. Thankyou – Rob