Quiero convertir el tipo de datos de cadena (p. ej.: '2018-03-27T00:20:00.855556Z') en una marca de tiempo (p. ej.: '2018-03-27 00:20:00').
En realidad, ejecuto la consulta en Athena:
select * from tb_name where elb_status_code like '5%%' AND date between DATE_ADD('hour',-2,NOW()) AND NOW();Pero tengo un error:
SYNTAX_ERROR: línea 1: 100: no se puede verificar si varchar está ENTRE la marca de tiempo con la zona horaria y la marca de tiempo con la zona horaria
Esta consulta se ejecutó en la base de datos "vf_aws_metrices", a menos que la consulta la califique. Publique el mensaje de error en nuestro foro o póngase en contacto con el servicio de atención al cliente con el ID de consulta: 6b4ae2e1-f890-4b73-85ea-12a650d69278.
Motivo: porque la fecha está en formato de cadena y tiene que convertirse en marca de tiempo. Pero no sé cómo convertirlo.
Intenta usar from_iso8601_timestamp . Visite la siguiente dirección para obtener más información sobre las funciones relacionadas con la marca de tiempo: https://docs.starburstdata.com/latest/functions/datetime.html
presto:tiny> select from_iso8601_timestamp('2018-03-27T00:20:00.855556Z'); _col0 ----------------------------- 2018-03-27 00:20:00.855 UTC (1 row)Creo que la consulta debería verse así:
select * from tb_name where elb_status_code like '5%%' AND from_iso8601_timestamp(date) between DATE_ADD('hour',-2,NOW()) AND NOW();Utilicé la siguiente manera y funcionó para mí.
date_parse(eta,'%Y-%m-%d %h:%i:%s')Consulte la documentación a continuación para obtener resultados detallados.
Hice:
seleccione parse_datetime('2020-12-20 16:05:33','yyyy-MM-dd H:m:s') como dta;
parse_datetime(cadena, formato) → marca de tiempo con zona horaria
ver también:
https://prestodb.io/docs/current/functions/datetime.html#java-date-functions
https://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html