SQL Server - consultar con fecha 01/01/1900

 
Vista:

consultar con fecha 01/01/1900

Publicado por achafio (37 intervenciones) el 13/05/2009 16:56:06
Mi duda es la siguiente:

tengo un select donde en mi where utiliza fecha_ini y fecha_fin, en la cual la fecha_ini es opcional es decir hay reportes que pueden poner un rango de fecha y otros simplemente hasta donde desean visualizar.

Ahora mi duda es en cuanto a la ultima, cuando la fecha_ini es opcional yo le pongo 01/01/1900 hago las pruebas y realmente me sale bien, pero segun me indican que esa fecha no existe y que producirá errores, la verdad quisiera saber cual es la verdad, o cual es la forma correcta de hacer la misma.

Estoy trabajando con sql 2000 y 2005
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
Imágen de perfil de roger

RE:consultar con fecha 01/01/1900

Publicado por roger (173 intervenciones) el 13/05/2009 17:13:56
si te funciona bien con esa fecha no debes tener ningun problema, los valores para el tipo de dato datetime va desde el año 1753, si mal no recuerdo el tipo de dato smalldatetime va desde 1900, entonces en ningun caso el rango que estas poniendo por defecto se va a desbordar.
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
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

RE:consultar con fecha 01/01/1900

Publicado por Isaias (4558 intervenciones) el 14/05/2009 04:48:43
De acuerdo con roger, solo que en tu caso, si la fecha INI es opcional y esta no es enviada como un dato, buscaria el MAX(TucampoFecha) y la haria igual a la fecha inicial.

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
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

RE:consultar con fecha 01/01/1900

Publicado por Isaias (4558 intervenciones) el 14/05/2009 04:49:46
Lastima que LWDP no tenga forma de MODIFICAR las respuestas.

Quise escribir MIN(TucampoFEcha)........

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

RE:consultar con fecha 01/01/1900

Publicado por achafio (37 intervenciones) el 14/05/2009 06:45:18
Mi duda es porque si es opcion quiere decir que voy a recuperar hasta la fecha final por tanto como mi select lo tengo así:

select *
from tabla
where fch_ini = :fch_ini
and fch_fin = :fch_fin

donde si no se ingresa fch_ini internamente le asigno 01/01/1900, caso contrario se le asigna el valor que le coloca el usuario.

según el encargado del proyecto dice que no deberia usar 01/01/1900 porque esa fecha no existe, por eso mi duda, caso contrario existe otra forma de hacer este tipo de consultas.
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
Imágen de perfil de roger

RE:consultar con fecha 01/01/1900

Publicado por roger (173 intervenciones) el 14/05/2009 15:14:55
como es tu select exactamente?, como te dice Isaias debe funcionar, y no estarias tomando una fecha inexistente, sino que estarias tomando desde la fecha mas baja que haya en la tabla pues estas aplicando la funcion MIN.
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
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

RE:consultar con fecha 01/01/1900

Publicado por Isaias (4558 intervenciones) el 14/05/2009 17:13:59
CREATE PROCEDURE......................
@FechaIni DATETIME,
@FechaFin DATETIME
AS
BEGIN
SET NOCOUNT ON
IF @FechaIni IS NULL
SELECT @FechaIni = MIN(TuColumnaFecha) FROM TUTABLA.......

[Tu consulta]................................................
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