Comparar hora

07/12/2005 - 11:55 por Carlos | Informe spam
Quiero comparar una hora determinada con un intervalo de horas que se
almacenan en dos campos datetime.

He visto que la función Datepart puede devolver la hora de un datetime o
devolver los minutos, pero no consiguo averiguar si puede devolver hora y
minutos.

¿Sabeis si hay alguna forma de obtener la hora y minutos de un datetime (con
una sola función).?

O teneis alguna sugerencia para comparar horas y minutos.

Gracias.

Preguntas similare

Leer las respuestas

#6 Alejandro Mesa
07/12/2005 - 19:39 | Informe spam
Carlos,

Lo que quiero hacer es comprobar si una hora que me llega como parametro



Que tipo de parametro usas?

Supongamos que recives la hora y minuto en un parametro smalldatetime,
entonces pudieras hacer algo asi como:

create procedure p1
@p1 smaldatetime
as
set nocount on

declare @h int, @m int

set @h = datepart(hour, @p1)
set @m = datepart(minute, @p1)

select
*
from
dbo.tu_tabla
where
dateadd(minute, (@h * 60) + @m, convert(char(8), c1, 112)) between c1
and c2

return @@error
go

El problema de esta solucion es que si la tabla dbo.tu_tabla tiene algun
indice por [c1], sql server no hara un uso adecuado de este, ya que estamos
manipulando la columna en la expresion.


AMB

"Carlos" wrote:



Lo que quiero hacer es comprobar si una hora que me llega como parametro
está dentro del intervalo que de dos horas que tengo en una tabla almacenadas
en dos campos datetime.

Datepart(hour,@parametro) between Datepart(hour,campo1) and
Datepart(hour,campo2)

Esto sería correcto si solo quiero comprobar horas, pero si quiero hacer la
comparación hora_minutos no veo como hacerlo con Datepart.



"Alejandro Mesa" escribió:

> Carlos,
>
> Pudieras postear un ejemplo de lo deseas hacer?
>
> Chequea la funcion CONVERT en los BOL, especificamente el estilo 8.
>
>
> select convert(char(5), getdate(), 8)
> go
>
>
> AMB
>
> "Carlos" wrote:
>
> > Quiero comparar una hora determinada con un intervalo de horas que se
> > almacenan en dos campos datetime.
> >
> > He visto que la función Datepart puede devolver la hora de un datetime o
> > devolver los minutos, pero no consiguo averiguar si puede devolver hora y
> > minutos.
> >
> > ¿Sabeis si hay alguna forma de obtener la hora y minutos de un datetime (con
> > una sola función).?
> >
> > O teneis alguna sugerencia para comparar horas y minutos.
> >
> > Gracias.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida