Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Select con fechas (https://www.clubdelphi.com/foros/showthread.php?t=18950)

yhoho 28-02-2005 12:43:30

Select con fechas
 
Bueno vamos aya, hago una select con una echa vale,

Select tal from pascual where fecha>12/02/2002;
vale pero en realidad lo que quiero es ponerlo con nu between o algo que funciones similar al bettween es deci acotarlo entre dos fechas, lo he intentado de las siguientes maneras:

select * from tal where fecha>12/02/2002
and fecha>20/02/2002;

pero no funciona alguien m puede aconsejar?? Gracias.

Investment 28-02-2005 12:52:35

Código:

select * from TABLA
 
  where (fecha>'12/02/2002'
 
      and fecha<'20/02/2002')

Las dos fechas las tienes con el simbolo de mayor que. Igual es eso lo que te fallaba.

yhoho 01-03-2005 10:04:25

Nada d nada
 
Lo he probado como dices pero sigue sin aslir nada la solucion en vez de darme las lineas necesarias no m sale nada m sale bacio, con solo la primera comparacion salen cosasa pero poniendo el and no sale nada d nada.
Que hago :( .

yhoho 01-03-2005 10:28:30

Mas datos
 
Ver lo he probado con between fecha and fecha, tampoco m dice nada,
lo he probado con menor que pero no m dice anda es como si el menor no funcionara, pero lo curioso es que cuando pongo el mayor que m salen tanto los mayores como los menores y no se pq puede pasar eso bueno espero q alguien m pueda decir algo pq m tiene en ascuas.

Gracias a qiuen sea.

Lepe 01-03-2005 11:23:27

Usa siempre FormatDateTime('mm/dd/yyyy',date), probablemente el 20 lo esté tomando como el mes, y por eso no sale nada.

Código SQL [-]
select * from TABLA
   
   where (fecha between '12/02/2002' 
   
      and '20/02/2002')

El formato para between es así, pero repito, pasale las fechas en el formato que espera tu motor de bbdd que normmalmente es mes/dia/año

Saludos

yhoho 01-03-2005 12:25:21

base de datos
 
Yo en la base de datos lo tengo como dia mes y año, entonces delphi que unsa mes dia y año??.
si eso asi se entendera el delphi con la base de datos, o tengo que darle algun formato en la select o como lo hago tio gracias siemrep tu jejejeje eres el amo.

yhoho 01-03-2005 12:29:03

Movidon
 
Como puede ser ademas que cuando pongo >12/02/2006 m aslen tb los del 2004 y 2005 aaaaaaaaaaaa q movida jejejej ahi hay algo muy aro nen bueno ya vorem como termino esto gracias.

argami 01-03-2005 14:35:01

yo personalmente no me enrroyo con la codificacion horaria. lo que hago es trabajar por parametros en la sql pongo algo como:

Código SQL [-]
   Select * from tabla where fecha between :Fecha1 and :Fecha2

y en el delphi hago lo siguiente

Código Delphi [-]
   Query.Close;
   Query.Params.ParambyName('Fecha1').AsDateTime := Datetimepicker1.DateTime;
   Query.Params.ParambyName('Fecha2').AsDateTime := Datetimepicker2.DateTime;
   Query.Open;

De esta manera el delphi se encarga de modificar la fecha a su gusto.

espero que te sirva

Pd: si tienes algun problema recuerda que tambien hay que modificar el tipo de parametro eso lo haces en el apartado params del query (o TTable)

CHiCoLiTa 01-03-2005 17:49:31

En el caso que no puedas pasarlas como parametros como te comenta argami y estas usando SQL Server prueba a ponerlas yyyymmdd y te evitaras problemas de las barras, guiones, primero el mes, primero el año, etc

yhoho 02-03-2005 09:53:11

Mas lio jejejej sorry
 
Bein como empezar, en lo que m dijo argami me da error en el AsDateTime y Datetimepicker1 me dice q no esta declarado yo he puesto lo siguiente:

adoquery1.Close;

adoquery1.Parameters.ParamByName('a').AsDateTime:=Datetimepicker1.DateTime;

adoquery1.Parameters.ParamByName('b').AsDateTime:=Datetimepicker1.DateTime;

adoquery1.Open;

Y la select es: Select * from tabla where fecha between :a and :b;

Tb he probado select * from tabla where (fecha>:a and fecha <:b);

Que asi no m da error pero no m sale ninguna fila solo me sale cuando dejo el signo mayor, eso si m sale tanto si es mayor como menor es decir no hace distincion, NO SE QUE HACER JEJEJEJEJEJEJ BUENO VER SI LO SACAMOS GRACIAS GENTE.

argami 02-03-2005 10:02:22

Puedo saber que tipos de campos son que base de datos usas?

yhoho 02-03-2005 10:17:02

Datos
 
Los daots son fecha corta es decir 00/00/0000, en acces.
En el query en parametres lo declaro como date y value 00/00/0000.

argami 02-03-2005 10:26:41

por lo que te entiendo lo tienes declarado como Date en una DB de access esto lo verifico por que si lo tienes declarado como timestamp tendras problemas de todas maneras inenta lo sig:

Código Delphi [-]
adoquery1.Close;
adoquery1.Parameters.ParamByName('a').AsDateTime:=Datetimepicker1.DateTime;
adoquery1.Parameters.ParamByName('b').AsDateTime:=Datetimepicker1.DateTime + 1;
adoquery1.Open;

yhoho 02-03-2005 10:33:44

Datos
 
Has entendido bien lo de la fecha en la BD vale pero lo que m pasa es que AsDateTime y el datetimepicker me dan error me dicen q no estan declarados tio esto es un lio estoy por cortarme la venas jejejeje es broma jejejeje q lio esto d las busquedas con letras no da tanto problema bueno ver si lo veis donde esta el fallo pq yo ya no se q hacer muxas grcias un dia os invito a comer jejejeje.

yhoho 02-03-2005 10:46:44

informacio
 
Bueno ver si consigo aclararlo vale, el AsDateTime y Datetimepicker1 me dice q no estan declarados ee es el error q me da ver q sucede jejejejeje.

argami 02-03-2005 10:59:42

Yo te puse datetimepicker1 por que normalmente estos temas de fechas los cojo de componentes que estan en el formulario de tipo TDateTimePicker probablemente no lo tengas declarado por que no tengas este componente en el formulario, y a lo mejor no te hace falta.

de todas maneras el otro tema es el AsDateTime este no te va porque el AsDateTime no existe para el ado Query existe el value por tanto tendrias que hacer una cosa como la siguiente:

Código Delphi [-]
 adoquery1.Close;
 adoquery1.Parameters.ParamByName('a').Value := Datetimepicker1.DateTime;
 adoquery1.Parameters.ParamByName('b').Value := Datetimepicker2.DateTime
 adoquery1.Open;

Vuelvo ha hacer incapie en el tema de que los datetimepickers son componentes que estan en la paleta Win32 que coloco en el formulario y que logicamente se obtiene el valor de ellos al momento de la ejecucion a travez de la propiedad DateTime o Date (esto depende de si trabajas con un campo con hora o no)

haber si esto te aclara el problema

yhoho 03-03-2005 10:30:27

Eres el amo tio
 
on eso me ahs guiado el cmino eres el amo jejeje muxas gracias tio ahora seguire avanznado con esto jejejeje esto del delphi en serio m tiene biciado jejejejeje al final lo controlare jejejej muxas gracias.

CHiCoLiTa 03-03-2005 13:09:51

De todos modos si no te rconocia el AsDateTime, mirate los parametros a ver si estan declarados como DateTime o sin embargo estan como unespected


La franja horaria es GMT +2. Ahora son las 12:57:28.

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