Página 1 de 1

Ordenar por campo de fecha en PostgreSQL

NotaPublicado: 2022-01-14 11:27 @519
por seafree
Ejecuto el siguiente query desde POSTGRESQL y obtengo el resultado esperado, ordenado por el campo fecha_24:

SELECT fecha_24,valor FROM t_mediciones WHERE (fecha_24 between '@fecha1 01:00:01 ' and '@fecha2 12:59:59') and subestacion='$subest' order by fecha_24

Sin embargo, ejecuto la misma instrucción desde perl vía web y DESPLIEGA LOS REGISTROS DESORDENADOS.

Les agradeceré su apoyo porque no obte. el campo fecha_24 es timestamp without time zone.

Gracias y Respetos para Ustedes.
seafree

Re: Ordenar por campo de fecha en PostgreSQL

NotaPublicado: 2022-01-14 12:20 @556
por explorer
Es posible que los registros los estés obteniendo desde la base de datos y guardándolos en un hash antes de enviarlos a la web.

Debes usar un array, en lugar de un hash.

Re: Ordenar por campo de fecha en PostgreSQL

NotaPublicado: 2022-01-14 13:03 @585
por seafree
Utilizo el hash porque requiero trabajar fechas con valores, por lo tanto decidí utilizar un hash para asociar las fechas con sus valores. Con los arreglos solo puedo guardar 1 valor y los valores que requiero son 2: FECHA Y VALOR

Definición del HASH:

my %valoresAM= {};

OBTENGO 2 CAMPOS DEL RESULTADO DE UN QUERY:

while (@row=$sth->fetchrow_array){
($fecha_24, $valor)=@row; ###CAMPOS DEL RESULTADO DE UN QUERY
$valoresAM{$fecha_24}=$valor; ###CON LOS VALORES OBTENIDOS GENERO UN HASH
}

MOSTRAR LOS VALORES DEL HASH:

foreach my $fecha (sort keys %valoresAM){
print "$fecha = $valoresAM[$fecha]";
}

DE ESTA MANERA, INTENTO MOSTRAR EL HASH PERO NO LO LOGRO. LES AGRADECERÉ SU APOYO PORQUE ES ALGO TRIVIAL PERO NO LO VEO :(

Re: Ordenar por campo de fecha en PostgreSQL

NotaPublicado: 2022-01-14 15:12 @675
por explorer
Si guardas el resultado en un hash, éste guarda los elementos de forma desordenada. Debes usar un array para mantener el orden que has solicitado en la consulta.

Basta con usar un array, en que cada elemento de ese array es una referencia a una estructura compleja (otro hash u otro array).

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my @valoresAM;
  2.  
  3. while (my @row = $sth->fetchrow_array) {
  4.     # almacenamos un nuevo valor en @valoresAM,
  5.     # consistente en una referencia al array que hemos obtenido,
  6.     # con los campos del registro:
  7.     #
  8.     # @valoresAM = (
  9.     #                 [ fecha24, valor ],
  10.     #                 [ fecha24, valor ],
  11.     #                 [ fecha24, valor ],
  12.     #                 ...
  13.     # );
  14.  
  15.     push @valoresAM, \@row;
  16. }
  17.  
  18. # Mostrar los valores:
  19. foreach my $row_ref (@valoresAM) {
  20.     print $row_ref->[0], " = ", $row_ref->[1], "\n";    # SALIDA: fecha24 = valor
  21. }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

Re: Ordenar por campo de fecha en PostgreSQL

NotaPublicado: 2022-01-14 15:44 @697
por seafree
Enormes gracias, explorer.

Saludos y Respetos.