duda sobre fechas..

23/02/2006 - 19:53 por Carmelo J. Morales Muñoz | Informe spam
Resulta que tras leer una web (referenciada por este foro) en el que se
aborda la problematica de las fecha, dice que se recomienda el uso del
formato ansi, por lo cual me queda una duda:


Si quiero pasar una fecha como parámetro para una consulta,,,, ¿la paso como
una cadena de texto en lugar de como una valor DateTime?.

es decir, en lugar de este proc almacenado:


procedure miProcNormal

@Fecha datetime

select * from tabla
where fecha = @Fecha


¿utilizar mejor este que es lo que he entendido?

@Fecha varchar(10)

select * from tabla
where fecha = @fecha

¿que opinan?... ¿estoy equivocado o lo he entendido bien?.


http://www.gestionagricola.com
http://www.carmelosoft.com
 

Leer las respuestas

#1 Isaias
23/02/2006 - 21:17 | Informe spam
Carmelo

El formato ANSI es igual a YYYYMMDD HH:MM:SS.NNN

Por tanto, si tu envias una variable de tipo DATE a un procedimiento y
buscas por IGUAL

WHERE mycolfecha = @MyVarDate

SQL intentara buscar algo EXACTAMENTE igual, lo cual, no creo que sea
posible, ya que esta contemplando HORAS, MINUTOS, SEGUNDOS

Si deseas buscar TODOS LOS REGISTROS de un dia en especial, deberias buscar
con >= (Mayor, Igual que) y <= (Menor, Igual que).

WHERE mycolfecha >= @MyVarDate AND mycolfecha <= @MyVarDate

La variable podria contener "2006-02-23'

Tambien pudes pasar una variable de tipo VARCHAR o CHAR, de longitud 9.

Espero haberme explicado.




Saludos
IIslas


"Carmelo J. Morales Muñoz" escribió:

Resulta que tras leer una web (referenciada por este foro) en el que se
aborda la problematica de las fecha, dice que se recomienda el uso del
formato ansi, por lo cual me queda una duda:


Si quiero pasar una fecha como parámetro para una consulta,,,, ¿la paso como
una cadena de texto en lugar de como una valor DateTime?.

es decir, en lugar de este proc almacenado:


procedure miProcNormal

@Fecha datetime

select * from tabla
where fecha = @Fecha


¿utilizar mejor este que es lo que he entendido?

@Fecha varchar(10)

select * from tabla
where fecha = @fecha

¿que opinan?... ¿estoy equivocado o lo he entendido bien?.


http://www.gestionagricola.com
http://www.carmelosoft.com



Preguntas similares