fecha y hora

13/05/2005 - 18:09 por Alioscha Gonzalo Debali | Informe spam
Hola a todos,

tengo un problema con el manejo de la fecha y hora,

Hay una tabla (bastante grande) que tiene un campo DateTime (donde la fecha
y hora son significativas), pero quiero hacer un Select por un rango de
fecha (donde la parte time no es importate)
y me devuelva todos los registro del período solicitado, El Problema es que
si el campo es 10/01/2005 14:00 y lo pedido es fecha 10/01/2005 no me lo
incluye.

Para lo cual arme una funcion

CREATE FUNCTION [Dbo].[Fn_DtoS] (@dFecha datetime )
RETURNS char(8)
AS
BEGIN
RETURN(select CONVERT ( char(8) , @dFecha,112) )
END

En el select hago select . where dbo.Fn_dtos(dfecha) between
dbo.Fn_dtos(@dfecha1) and dbo.Fn_dtos(@dfecha2)

Me temo que esto no es muy efciente pero para salir del paso funciona.

Comentarios serán agradecidos.

saludos
 

Leer las respuestas

#1 Alejandro Mesa
13/05/2005 - 18:31 | Informe spam
Alioscha,

Use el patron:

declare @sd datetime
declare @ed

set @sd = '20050110'
set @ed = '20050110'

select c1, ..., cn
from tabla1
where dfecha >= @sd and dfecha < dateadd(day, 1, @ed)

Osea, que la columna fecha sea mayor o igual a la fecha de inicio y menor
que al dia siguiente (12:00 am).


AMB


"Alioscha Gonzalo Debali" wrote:

Hola a todos,

tengo un problema con el manejo de la fecha y hora,

Hay una tabla (bastante grande) que tiene un campo DateTime (donde la fecha
y hora son significativas), pero quiero hacer un Select por un rango de
fecha (donde la parte time no es importate)
y me devuelva todos los registro del período solicitado, El Problema es que
si el campo es 10/01/2005 14:00 y lo pedido es fecha 10/01/2005 no me lo
incluye.

Para lo cual arme una funcion

CREATE FUNCTION [Dbo].[Fn_DtoS] (@dFecha datetime )
RETURNS char(8)
AS
BEGIN
RETURN(select CONVERT ( char(8) , @dFecha,112) )
END

En el select hago select . where dbo.Fn_dtos(dfecha) between
dbo.Fn_dtos(@dfecha1) and dbo.Fn_dtos(@dfecha2)

Me temo que esto no es muy efciente pero para salir del paso funciona.

Comentarios serán agradecidos.

saludos






Preguntas similares