domingo, 18 de diciembre de 2016

diferencias de fechas con SQL en LibreOffice Base (XIV)

LibreOffice Base
Alguna vez hemos tenidos que realizar en LibreOffice Base una diferencia de fechas para mostrar los días, meses o los años, por ejemplo  saber los días que quedan para que cumplan un recibo.  cuando cumple años alguien u otros trabajos similares a estos dos. La instrucción DATEDIFF de SQL nos da esta posibilidad de una forma rápida y efectiva.


Observe la siguiente instrucción:


SELECT "Nombre", "Apellidos",  "Fecha Nacimiento",  
DATEDIFF( 'year', "Fecha Nacimiento", CURDATE ())  AS 'AÑOS' 
FROM "Usuarios"

La única peculiaridad que tiene es la instrucción DATEDIFF( 'year', "Fecha Nacimiento", CURDATE ()), pasando a explicar su funcionamiento, el parámetro 'year' provocará que nos devuelva el valor en años, mas adelante puede ver una tabla con sus posibilidades, el siguiente argumento es un campo que contiene  una fecha y el argumento CURDATE (), extrae la fecha del sistema, de su ordenador, para realizar la diferencia de fechas, para cerrar todo esto hemos incluido una cláusula ALIAS para que incluya una cabecera a la columna.

Pongamos en práctica lo que hemos aprendido en LibreOffice Base, una vez abierta la base de datos donde va a trabajar, seleccione la sección de Consultas, haga clic en la opción Crear una consulta en modo SQL...

SQL y LibreOffice Base

Le mostrará el siguiente cuadro de diálogo, en este puede introducir la instrucción que acabamos de estudiar.

SQL y LibreOffice Base

Introduzca la instrucción SQL, observe que ha cambiado algunos colores de la misma, esto lo hace mas fácil de leer e identificar para el usuario, ya que destina un color para cada tipo de argumento de la instrucción en SQL.

SQL y LibreOffice Base

Haga clic en el botón Ejecutar consulta para que le muestre el resultado.

SQL y LibreOffice Base

Como hemos dicho al comienzo del artículo el primer parámetro de la instrucción DATEDIFF, se puede cambiar por los siguientes:

  • 'yy': años
  • 'year': años
  • 'mm': meses
  • 'month': meses
  • 'dd': días
  • 'day': días
  • 'hh': horas
  • 'hour': horas
  • 'mi': minutos
  • 'minute': minutos
  • 'ss': segundos
  • 'second': segundos
  • 'ms': milisegundos
  • 'millisecond': milisegundos

Para terminar observe la siguiente instrucción:

SELECT "Nombre", "Apellidos", "Fecha Nacimiento", 
DATEDIFF( "year", "Fecha Nacimiento", CURDATE( ) ) "AÑOS" 
FROM "Usuarios"

 Me provoca el siguiente error.

SQL y LibreOffice Base


Se soluciona modificando las comillas dobles del parámetro "year" por  comillas simples 'year', esto me ha dado bastantes quebraderos de cabeza, apliquen este conocimiento a todo lo que vayan desarrollando en el futuro y que le dé algún problema.






0 comentarios:

Publicar un comentario