Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-02-2010
Avatar de JefeNet
JefeNet JefeNet is offline
Miembro
 
Registrado: ago 2004
Posts: 111
Poder: 20
JefeNet Va por buen camino
Filtrar una tabla por mes

hola, he buscado sin conseguir resultado alguno. tengo una tabla con un campo tipo Date y quisiera filtrar la tabla por mes, osea que me muestre solo los registros donde el mes sea igual al mes en curso el problema es que en la tabla la fecha es dd/mm/aaaa y utilizo el siguiente codigo
Código Delphi [-]
TSeguro.Filter:='FechaInicio >= ' + QuotedStr(dia1) + ' and FechaInicio <= ' + QuotedStr(dia2);

donde dia1 es una variable que haciendole artificios matematicos (de mala calidad) obtengo 01/mm/aaaa y lo mismo para dia1 pero obtengo 30/mm/aaaa ó 31/mm/aaaa y asi filtro la tabla donde la fecha este entre el dia1 y dia2, pero se que eso no se hace asi y quisiera que me ayudaran pues si el mes es febrero habra un error porque no tiene ni 30 ni 31 dias.

como hago para filtrar la tabla por el mes si el formato es dd/mm/aaaa


gracias

Última edición por JefeNet fecha: 03-02-2010 a las 16:28:18.
Responder Con Cita
  #2  
Antiguo 03-02-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.285
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
A parte de lo que puedas hacer en la Base de Datos, siempre hay la opción de la segunda fecha poner que sea menor estricto que el día 1 del mes siguiente. Es decir, en lugar de:

<= 31/03/...
<= 28/02/...

colocar:

< 1/04
< 1/03

También tienes en Delphi (DateUtils creo recordar) funciones que te devuelven el numero de días de un mes, sin tener que hacer operaciones raras...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 03-02-2010
Avatar de JefeNet
JefeNet JefeNet is offline
Miembro
 
Registrado: ago 2004
Posts: 111
Poder: 20
JefeNet Va por buen camino
ok voy a probar gracias
Responder Con Cita
  #4  
Antiguo 03-02-2010
Avatar de JefeNet
JefeNet JefeNet is offline
Miembro
 
Registrado: ago 2004
Posts: 111
Poder: 20
JefeNet Va por buen camino
solucionado no se si sera la mejor manera pero me funciona filtro desde el primer dia del mes hasta la fecha actual, asi que si es 28,29, 30 o 31 el ultimo dia del mes no importa.
dejo el codigo por si alguien lo necesita
Código Delphi [-]
var
  fecha1,fecha2:string;
  mes,dia, ano:word;
begin
  decodedate(date,ano,mes,dia);
  Fecha1:=datetostr(date-dia+1); //consigo el primer dia del mes
  Fecha2:= datetostr(date);        //fecha actual
  Tabla.Filtered:=true;
  Ttabla.Filter:='Fecha >= ' + QuotedStr(Fecha1) + ' and Fecha <= ' + QuotedStr(Fecha2);

de esta manera filtro todos los registros donde la fecha este entre el primer dia del mes en curso y el dia actual.
Responder Con Cita
  #5  
Antiguo 03-02-2010
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
En delphi tienes una unidad llamada DateUtils (DateUtil en Delphi 5), en la que puedes encontrar las funciones DayOf, MonthOf y YearOf, además de DecodeDateTime y EncodeDateTime, dichas funciones te ayudan a obtener la parte de la fecha que necesitas, en tu caso, utilizaría la función MonthOf para obtener el mes.

Seguramente en tu base de datos, también tendrías herramientas similares. EN SQLServer por ejemplo, tienes la función Month y para obtener todos losmovimientos de enero, solo hace falta hacer:
Código SQL [-]
Select Movimientos
From TablaMovimientos
Where Month(Fecha) = 1
__________________

Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Filtrar tabla por temporarizador!! nider Conexión con bases de datos 6 08-03-2007 21:17:53
error al filtrar tabla leodelca23 Tablas planas 3 20-09-2006 17:23:07
Filtrar Tabla jovehe Tablas planas 6 15-09-2004 22:06:32
como filtrar una tabla andre navarrete Varios 5 11-08-2004 06:17:19
Filtrar una tabla Tangela Conexión con bases de datos 1 29-05-2003 00:56:37


La franja horaria es GMT +2. Ahora son las 08:01:23.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi