변환할 문자열을 열고 있는 AM/PM 을에 타임스탬프 Impala

0

질문

나는 열에 있는 값을 문자열 형식을 아래와 같다:

31-Oct-2016 12:00 AM
31-May-2015 12:00 PM

로 변환하고 싶 위 열 값을에 타임스탬프 IMPALA. 했으로 캐스팅,to_timestamp 과는 다른 방법이지만,그것은 하나 보여주는 구문 오류 또는 Null 을 결과입니다. 할 수 있습니하십시오 솔루션을 제안

2 구

가 열은 아래와 같이 문자열에,나는 그것을 변환하는 타임 스탬프 혼자입니다.

31-Oct-2016 12:00 
31-May-2015 12:00 

시기 바랍는 방법을 제안,나는 새로운 임팔라

사전에 감사합니다

casting hive impala timestamp
2021-11-22 05:58:32
1

최고의 응답

0

아래에 사용할 수 있습 코드입니다. 불행하게도,impala 없 pm 변환 능력,하지만 당신은 약간을 사용할 수 있는 코드를 식별하는 오후 12 시간을 추가하는 변환합니다.

select 
if (right('31-Oct-2016 02:09 PM',2)='PM',
to_timestamp('31-Oct-2016 02:09 PM','d-MMM-yyyy H:m') + interval 12 hours,
to_timestamp('31-Oct-2016 02:09 PM','d-MMM-yyyy H:m')
) ampm_timestamp

두 번째 요구사항
임팔라 항상 예 24 시간 형식으로 변환할 때 날짜/시간입니다. 그래서,당신의 경우 오전 12 시,우리가 해야 할 일부 특별한 논리는 아래와 같다.
먼저 확인하는 경우 12AM,다이너스 12 시간,다른 사람을 확인하면 그동을 추가,12 시간(를 커버하는 오후 12 시나리오)및 마지막으로는 경우 그 다른 AM,그것은 단순히 변환하여 타임 스탬프.

select 
CASE WHEN right('31-Oct-2016 12:09 AM',2)='AM' AND RIGHT( SPLIT_PART('31-Oct-2016 12:09 AM',':',1),2)='12'
THEN to_timestamp('31-Oct-2016 12:09 AM','d-MMM-yyyy HH:mm') - interval 12 HOURS 
ELSE CASE WHEN  right('31-Oct-2016 12:09 AM',2)='PM'
THEN to_timestamp('31-Oct-2016 12:09 AM','d-MMM-yyyy HH:mm') + interval 12 HOURS 
ELSE to_timestamp('31-Oct-2016 12:09 AM','d-MMM-yyyy HH:mm') 
END END AMPM_TIMESTAMP
2021-11-22 08:46:32

주셔서 감사합상 대답하지만,내가 찾는 정확한 시간을 나가 제공한 필요조건에서 다음과 같 12:00 12:00PM,@Koushik Roy
Shanti

업데이트 내 대답이다.
Koushik Roy

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................