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

Preguntas similare

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






Respuesta Responder a este mensaje
#2 Alioscha Gonzalo Debali
13/05/2005 - 18:37 | Informe spam
Gracias por tu rta.

Pero el rango de fecha purde ser mensual (01/01/2005) al (31/01/2005)

declare @ed , de que tipo es datetime?

saludos


"Alejandro Mesa" escribió en el
mensaje news:
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
>
>
>
>
>
>
Respuesta Responder a este mensaje
#3 Alejandro Mesa
13/05/2005 - 18:38 | Informe spam
Corrección,

declare @ed



declare @ed datetime

que al dia siguiente (12:00 am).



que el dia siguiente (12:00 am) a la fecha final.


AMB

"Alejandro Mesa" wrote:

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
>
>
>
>
>
>
Respuesta Responder a este mensaje
#4 Alejandro Mesa
13/05/2005 - 18:50 | Informe spam
Alioscha,

Pero el rango de fecha purde ser mensual (01/01/2005) al (31/01/2005)



Voy usar estos valores para re-escribir el patroon:

select c1, ..., cn
from tabla 1
where dfecha >= '20050101' y dfecha < dateadd(day, 1, '20050131')

lo cual quedaria como:

select c1, ..., cn
from tabla 1
where dfecha >= '20050101' y dfecha < dateadd(day, 1, '20050201')

osea, que la columna dfecha sea mayor o igual que 01/01/2005 y menor a
02/01/2005


AMB

"Alioscha Gonzalo Debali" wrote:

Gracias por tu rta.

Pero el rango de fecha purde ser mensual (01/01/2005) al (31/01/2005)

declare @ed , de que tipo es datetime?

saludos


"Alejandro Mesa" escribió en el
mensaje news:
> 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
> >
> >
> >
> >
> >
> >



Respuesta Responder a este mensaje
#5 Alejandro Mesa
13/05/2005 - 19:24 | Informe spam
Corrección,

El cambio de ingles a español y viceversa a veces me juega una mala pasada.

where dfecha >= '20050101' y dfecha < dateadd(day, 1, '20050131')



where dfecha >= '20050101' and dfecha < dateadd(day, 1, '20050131')

where dfecha >= '20050101' y dfecha < dateadd(day, 1, '20050201')



where dfecha >= '20050101' and dfecha < dateadd(day, 1, '20050201')


AMB

"Alejandro Mesa" wrote:

Alioscha,

> Pero el rango de fecha purde ser mensual (01/01/2005) al (31/01/2005)

Voy usar estos valores para re-escribir el patroon:

select c1, ..., cn
from tabla 1
where dfecha >= '20050101' y dfecha < dateadd(day, 1, '20050131')

lo cual quedaria como:

select c1, ..., cn
from tabla 1
where dfecha >= '20050101' y dfecha < dateadd(day, 1, '20050201')

osea, que la columna dfecha sea mayor o igual que 01/01/2005 y menor a
02/01/2005


AMB

"Alioscha Gonzalo Debali" wrote:

> Gracias por tu rta.
>
> Pero el rango de fecha purde ser mensual (01/01/2005) al (31/01/2005)
>
> declare @ed , de que tipo es datetime?
>
> saludos
>
>
> "Alejandro Mesa" escribió en el
> mensaje news:
> > 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
> > >
> > >
> > >
> > >
> > >
> > >
>
>
>
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida