presto outer lake gui data prestodb

prestodb - outer - Presto-fecha estática y marca de tiempo en la cláusula where



prestodb gui client (2)

Estoy bastante seguro de que la siguiente consulta solía funcionar para mí en Presto:

select segment, sum(count) from modeling_trends where segment=''2557172'' and date = ''2016-06-23'' and count_time between ''2016-06-23 14:00:00.000'' and ''2016-06-23 14:59:59.000''; group by 1;

ahora cuando lo ejecuto (en Presto 0.147 en EMR) me sale un error al intentar asignar varchar a fecha / marca de tiempo ..

Puedo hacerlo funcionar usando:

select segment, sum(count) from modeling_trends where segment=''2557172'' and date = cast(''2016-06-23'' as date) and count_time between cast(''2016-06-23 14:00:00.000'' as TIMESTAMP) and cast(''2016-06-23 14:59:59.000'' as TIMESTAMP) group by segment;

pero se siente sucio ... ¿hay una mejor manera de hacer esto?


A diferencia de otras bases de datos, Presto no convierte automáticamente entre varchar y otros tipos, incluso para constantes. El reparto funciona, pero una forma más sencilla es usar los constructores de tipos:

WHERE segment = ''2557172'' AND date = date ''2016-06-23'' AND count_time BETWEEN timestamp ''2016-06-23 14:00:00.000'' AND timestamp ''2016-06-23 14:59:59.000''

Puede ver ejemplos de varios tipos aquí: https://prestodb.io/docs/current/language/types.html


Solo un pensamiento rápido ... ¿has intentado omitir los guiones en tu cita? intente 20160623 lugar de 2016-06-23 .

Encontré algo similar con el servidor SQL, pero no usé Presto.