InicioApuntes Y MonografiasSQL usando fechas para agrupar {fn week()}, {fn year()}

SQL usando fechas para agrupar {fn week()}, {fn year()}

Hola hoy trataré de dar unos tips para sql, mostrare algunas funciones que me han servido y q no son las más comunes, así que en este post nos brincaremos las básicas como select, update, insert y delete, aunque no descarto postear algo sobre esos temas después, bueno comencemos.

Primero mostrare una función para buscar por rangos de fechas, resulta que puedes encapsular rangos de fechas sin conocer los días de inicio y fin ahora les muestro.

Imagínense que tenemos una tabla de Facturas, con campos como id,folio,importe,cliente y fecha y queremos ver lo facturado pero que el resultado nos lo muestre por semana, sabemos que la semana es de lunes a domingo pero ¿cómo realizar la agrupación?, pues resulta que existe una función para ello seria asi {fn week(FECHA)} el campo fecha seria reemplazado por el que quieren filtrar obviamente tiene que ser de tipo date, ahora un ejemplo

Queremos las facturas de una semana en especial

Select * From Facturas Where {fn week(fecha)}=1

Con esto nos mostrara todos los registros donde la semana sea igual a uno, pero eso mostrara todos los años, vamos a incluir el año

Select * From Facturas Where {fn week(fecha)}=1 and {fn year(fecha)}=2011

De esta manera tenemos las facturas de la semana 1 del 2011, ahora saquemos lo facturado por semana para ello usaremos también la función sum()

Select {fn week(fecha)},sum(importe) as importe From Facturas Where {fn year(fecha)}=2011 group by {fn week(fecha)}

Esto nos regresara los importe semana con semana

Un inconveniente a considerar es que en algunos casos puede ser un poco lento usarla función, pero los resultados valen la pena ya que pueden evitar muchas líneas de código.

Espero sea de utilidad para alguien.

P.D. También se puede por mes, seria {fn month(fecha)}, jeje saludos.
Solo lo he probado en MS SQL , desconozco si funciona en MySQL u otros motores de bases de datos
Datos archivados del Taringa! original
10puntos
2,783visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
3visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

s
spiderdrian🇦🇷
Usuario
Puntos0
Posts3
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.