lunes, 28 de noviembre de 2011

Consulta Mysql para agrupar por fechas y funciones de fecha.

Llevo tiempo sin escribir en el blog, por el trabajo. Pero voy a aprovechar estos dias para escribir un poco sobre algunas cosas que e aprendido trabajando, que me han sido de utilidad y por lo general en Internet no hay documentación en español.



Este primer post voy a hablar de como se hace en mysql para agrupar fechas por días, mes, año, minuto hora, etc.  Además de algunas funciones útiles de mysql:

Cuando hacemos un GROUP BY de un campo datetime, timestamp, date o time. Por defecto el va agrupar por supuesto por valores iguales. El problema es que para que dos datetime sean iguales tienen que tener el día y la hora exacta, lo cual no es muy común que esto ocurra. Entonces para ello sql acepta que apliquemos funciones para hacer los GROUP BY, es decir, que para lograr lo anterior solo tenemos que agregar una función que nos de el mes la hora o lo que queramos para poder hacer la agrupación.

Funciones de fecha que nos pueden servir:

EXTRACT( Unidad de una fecha)

Esta funcion extrae de una fecha lo que nosotros le pidamos(esta es la más recomendada por el rendimiento, un ejemplo seria:


SELECT EXTRACT(YEAR FROM '2009-07-02');

Aqui les dejo una lista con todos los valores posibles


unit ValueExpected expr FormatVersion
MICROSECONDMicrosegundos4.1.1
SECONDSegundosPre-4.1
MINUTEMinutosPre-4.1
HOURHorasPre-4.1
DAYDiasPre-4.1
WEEKSemana5.0.0
MONTHMesesPre-4.1
QUARTERQUARTERS5.0.0
YEARAñosPre-4.1
SECOND_MICROSECOND'Segundos.Microsegundos'4.1.1
MINUTE_MICROSECOND'Minutos:Segundos.Microsegundos'4.1.1
MINUTE_SECOND'Minutos:Segundos'4.1.1
HOUR_MICROSECOND'Horas:Minutos:Segundos.Microsegundos'4.1.1
HOUR_SECOND'Horas:Minutos:Segundos'4.1.1
HOUR_MINUTE'Horas:Minutos'Pre-4.1
DAY_MICROSECOND'Dias Horas:Minutos:Segundos.Microsegundos'4.1.1
DAY_SECOND'Dias Horas:Minutos:Segundos'Pre-4.1
DAY_MINUTE'Dias Horas:Minutos'Pre-4.1
DAY_HOUR'Dias Horas'Pre-4.1
YEAR_MONTH'Años-Meses'Pre-4.1


DATE_FORMAT(date,format)


Esta función devuelve la fecha con un formato especifico acorde al formato de la cadena formato, esta funcion es muy util para mostrar la fecha con un formato especifico, lo más recomendable es hacer el GROUP con la función anteriror y formatearla con esta. en el caso de que queramos un formato más complejo.

Tambien estan otras funciones como DATE, MONTH, YEAR, etc. que extraen partes más especificas de la fecha, para consultar todas las unfiones disponibles pueden entrar aqui:
http://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html


jueves, 17 de noviembre de 2011

Nuevas actualizaciones en el mundo del Desarrollo web

En mes an salido muchas actualizaciones en el mundo del Desarrollo Web, voy a hacer un pequeño resumen de las actualizaciones y las mejores que incluyen:

jquery 1.7 (3-nov)


  • Nuevos eventos on() y off(), para manejar eventos, las cuales haran el trabajo de blind y delegate a la ves.
  • Mejorado el rendimiento de la función delegate.
  • Mejorado el soporte de ie7/8 para html5, 
  • Mejoradas las funciones toggle(), ahora al hacer stop() y utilizar otra, la animación comienza donde termino la otra.
  • Para ver todos los cambios se pueden ver desde aqui: http://blog.jquery.com/2011/11/03/jquery-1-7-released/


Vtiger 5.3 (11-nov):
  • El Usuario puede configurar su zona horaria 
  • Configurable delimitador de moneda 
  • Modulo de email. Se mejoro el modulo de Webmails 
  • Se puede programar el envio de reportes a correo 
  • Configurado el editor 
  • Nuevo plugin de outlook.- Desarrollado desde 0 para trabajar con las nuevas versiones de windows y outlook. 
  • Importación mejorada. 
  • Actualizados los fields de tarea en Workflows. 
  • Ahora se pueden poner valores por defecto mientras se crea una fila 
  • Se mejoro el modulo de Workflow(flujo de trabajo) 
  • Listas Mejoradas - Las opciones de las listas pueden ser configuradas en base a otras listas 
  • Modulo reportes mejorado 
  • Disponibilidad de configurar el permiso de lectura solamente en campos por perfil 
  • Filtro avanzado de Vistas personalizadas y busqueda avanzada de listas an sido mejorados 
Codeigniter 2.1 (14-nov)


  • Añadido soporte para la base de datos Cubrid
  • Las funciones de callback ahora aceptan parametros como las otras reglas de validación
  • Agregada la función html_escape() a las funciones comunes, esta permite evitar injecciones en el codigo html.
  • Arreglado un una posible inyección en la libreria de seguridad.
  • Corregido como 22 bugs adicionales

Jquery Mobile 1.0 (16-nov)

Al FIN a salido la versión 1.0 de este poderoso framework para desarrollo web para móviles, llevaba ya mucho tiempo esperando esta poderosa herramienta, que te permite crear una pagina especialmente para celulares en html5 y css3.  Sin preocuparnos ni por el estilo ni nada que tenga que ver. Después dedicare algunas entradas a este fabuloso framework. Entre las mejoras que trae incluye:


  • Sacaron el themeroller para que diseñemos nuestro propio tema. parecido al de jquery UI
  • Soporta perfectamente Apple Ios >3.2, blacberry > 6, Palm WebOS > 1.4, Android, WIndows Phone 7 - 7.5, etc
  • Mejoraron en esta versión el rendimiento del framework
  • En el blog http://jquerymobile.com/blog/, consgeguiran toda la informción relacionada.