• Publicidad

Ordenar por campo de fecha en PostgreSQL

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Ordenar por campo de fecha en PostgreSQL

Notapor seafree » 2022-01-14 11:27 @519

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
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Publicidad

Re: Ordenar por campo de fecha en PostgreSQL

Notapor explorer » 2022-01-14 12:20 @556

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.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Ordenar por campo de fecha en PostgreSQL

Notapor seafree » 2022-01-14 13:03 @585

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 :(
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Re: Ordenar por campo de fecha en PostgreSQL

Notapor explorer » 2022-01-14 15:12 @675

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
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Ordenar por campo de fecha en PostgreSQL

Notapor seafree » 2022-01-14 15:44 @697

Enormes gracias, explorer.

Saludos y Respetos.
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados