Usted puede utilizar a continuación el código. Por desgracia, impala no tiene am pm conversión de capacidad, pero se puede usar un poco de código para identificar PM y agregar de 12 horas para que convertir correctamente.
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
Segundo requisito -
Impala siempre espera 24 horas de formato de hora cuando se convierte datetime. Así que, en su caso, por 12 AM escenario, tenemos que hacer algo de lógica, como el de abajo.
En primer lugar comprobar si sus 12 AM, luego de menos de 12 horas, cosa comprobar si su PM, a continuación, añadir 12 horas(que cubre las 12PM escenario) y, finalmente, si su cualquier otro SOY, simplemente se convierte en la marca de tiempo.
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