Delphi - Fechas

 
Vista:

Fechas

Publicado por Maibok (34 intervenciones) el 18/12/2005 18:15:49
Hola chicos.
Tengo un problema en una cosulta sql, es que no se hacer lo siguiente.
En una tabla tengo un campo que se llama FechaNacimiento, y lo que quiero hacer es una consulta que me diga qué personas cumplen años entre dos fechas que yo le meta, es decir, algo asi:

Si yo quiero ver quien cumple entre las fechas 01/12/2005 y 15/12/2005 cómo sería la consulta???.

SELECT *
FROM tabla
WHERE //aquí me viene el problema porque de la fecha de nacimiento sólo hay que considerar día y mes, no el año, y no sé como hacerlo, me podéis ayudar?????. Gracias

(me urge)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Fechas

Publicado por LSamboy (75 intervenciones) el 19/12/2005 03:29:08
lo que debes de hacer es usar dos parametros, en las consultas sql en delphi los parametros por nombre se pasan utilisando " =: " el signo igual y el dos punto, te doy un ejemplo que te servira, amigo.

debes de tener un objeto query, para esto. entre el begin end del procedimiento de donde lo quiere ejecutar escribes.

with query1 do
begin

cloise ;
sql.clear;
sql.add('select * from tabla where fechanacimiento between :desde and :hasta');
parambynames('desde).value := strtodate(edit1.text);
parambynames('hasta').value := strtodate(edit2.text);
open;

end;

con esto esta resulto el problemas, esta consulta te mostrara los registro que se encuentren en el intervalo introducido como fecha.

espero te sirva.

LSamboy
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Fechas

Publicado por Maibok (34 intervenciones) el 19/12/2005 18:44:10
Hola de nuevo. Antes de nada, gracias por intentar ayudarme Samboy, pero creo que no me expliqué bien en la pregunta. Lo que me has dicho no es exactamente lo que yo quiero. Con eso saco una consulta de todos los registros entre esas dos fechas, pero mirad, me explico otra vez (a ver si mejor). El caso es el siguiente:


EJEMPLO: Quiero que la consulta me devuelva la fecha 10/12/1980 cuando introduzco las fechas 01/12/2005 y 15/12/2005. El problema es que la fecha que quiero que me devuelva no está entre las dos que introduzco (por el año 1980), pero la persona que nacio en esa fecha si que cumple años entre las dos fechas que yo metí.

Nada más. Espero haberme explicado mejor y que me podáis ayudar. Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Fechas

Publicado por Virum (484 intervenciones) el 19/12/2005 23:33:22
Hola:

Entiendo, según el ejemplo que pones, que quieres seleccionar todas las personas de una tabla que cumplan los años entre el 1 y el 15 de diciembre.

Entonces habrá que buscar todos los registros que en su fecha de nacimiento tengán como mes el 12 (MonthOf) y como día uno comprendido entre 1 y 15 (DayOf).

Ahora será cuestión de pasar esto a lenguaje SQL , ¿cómo?, pues ahora mismo no tengo ni idea, pero puedes ir investigando por este camino.

Algo parecido a esto (pues esto no debe ser muy correcto)

select from TUTABLA where MONTH(fechanacimiento) = 12 and DAY(fechanacimiento) between 1 and 15

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Fechas

Publicado por Martin_artaza (72 intervenciones) el 20/12/2005 04:51:52
Hola, mira fijate en la ayuda de Sql tiene miles de funciones, no me acuerdo en este momento como se puede sacar los dias, meses y hasta que dia es (lunes, martes, ...) con funciones propias de sql, que varian segun el standar de sql.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Fechas

Publicado por BigLuis (713 intervenciones) el 20/12/2005 14:19:07
Martin_artanza tiene razon. Mirate la ayuda de la base de datos que utilices. Si esta fuera MySQL seria sencillisimo, pero claro sus funciones no sirven para otras.

MYSQL:=
SELECT * FROM Tabla WHERE day(fechanacimiento)=day(curdate())
and month(fechanacimiento)=month(curdate()); o algo similar
Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Fechas

Publicado por Maibok (34 intervenciones) el 20/12/2005 16:09:31
Gracias a todos, lo probaré ahora mismo. Si lo saco os lo pongo aquí para compartirlo por si alguien lo quiere. Saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar