Tengo esta consulta en Laravel Eloquent:
$measures = Measure::groupBy('time') ->selectRaw('time, sum("delta") as sum_delta, sum("redistributed") as sum_redistr') ->where('operation_id', 'ACC0000001') ->where('time', '>', '2020-05-09 00:00') ->where('time', '<', '2020-05-10 00:00') ->where('source', 'source1') ->where('conso_prod', 'Conso') ->get() Cuando depuro usando la función toSql() y luego la pego en pgAdmin, obtengo el resultado correcto.
select time, sum("delta") as sum_delta, sum("redistributed") as sum_redistr from "measures" where "operation_id" = 'ACC0000001' and "time" > '2020-05-09' and "time" < '2020-05-10' and "source" = 'source1' and "conso_prod" = 'Conso' group by "time"Y tengo un resultado cada 30m que es correcto.
Pero cuando uso elocuente, tengo la misma cantidad de filas, pero todos los campos de time son iguales:
"2020-05-09 00:00"en lugar de incrementar.
no entiendo porque? Yo uso PostgreSQL con la extensión TimescaleDB.
En mi modelo, mi tiempo se proyectó hasta la date en lugar de la fecha y la datetime
protected $casts = [ 'time' => 'date' ];Lo cambié a:
protected $casts = [ 'time' => 'datetime' ];Y funcionó.
¡Lo dejo allí si alguien falla como yo! Gracias por tu ayuda de todos modos