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.