viernes, 21 de agosto de 2020

Fecha actual, subselects y registros pasados más recientes en MariaDB

 JI se ha decidido a colaborar con este blog publicando alguna entrada de vez en cuando, siguiendo la misma filosofía del "lo explico para enterarme yo".
 
En esta su primera entrada nos habla de SELECTS y SUBSELECTS y la fecha actual en MariaDB.
 
Esperemos que sea la primera de muchas entradas futuras.



MARIADB: FECHA ACTUAL Y REGISTROS MÁS RECIENTES


Como me ha costado un rato, comparto esto por si otro estuviera en el mismo caso, lo ve más rápido y si no es exactamente lo que busca, igual le vale como punto de partida.

Tengo una base de datos en MariaDB y necesito sacar un registro con la fecha más reciente, por lo que he necesitado la fórmula curdate() para sacar la fecha actual

Como lo que quería era la factura más reciente, anterior a hoy (PROBLEMA: tenemos algunas con fecha futura), he hecho una subconsulta. Primero he seleccionado los datos que quería de la factura y he puesto que la fecha fuera igual a la mayor (más reciente) de las pasadas (en el WHERE de la subconsulta le indico que sea anterior a hoy).

SELECT id_factura, cliente, fecha

FROM facturas

WHERE fecha = (select max(fecha)

               from facturas

               where fecha < curdate())


Es sencillo, pero me ha dado un poco de quebradero de cabeza porque al usar MAX hay que poner el campo que queramos y el paréntesis pegado a la palabra porque si no da error, así me ha pasado a mí en la consulta SQL. Utilizo un servidor de Hostinger, no sé si este comportamiento será el mismo en todos, pero mejor coger una buena costumbre para evitar fallos similares.

Espero que os pueda servir.

No hay comentarios:

Publicar un comentario