Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Consulta con fecha y Hora

Estas en el tema de Consulta con fecha y Hora en el foro de SQL Server en Foros del Web. tengo una tabla cuenta int folio int cliente varchar total_deposito int fecha datetime en el registro fecha se guarda 2005-12-06 11:15:00.000 mi pregunta es como ...
  #1 (permalink)  
Antiguo 07/12/2005, 09:28
 
Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 20 años, 4 meses
Puntos: 1
Consulta con fecha y Hora

tengo una tabla

cuenta int
folio int
cliente varchar
total_deposito int
fecha datetime

en el registro fecha se guarda 2005-12-06 11:15:00.000 mi pregunta es como puedo hacer una consulta que me de todos los datos digamos del dia 05/12/2005 a las 16:00 hasta el dia 06/12/2005 a las 08:00
  #2 (permalink)  
Antiguo 07/12/2005, 15:43
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
SELECT *
FROM tabla
WHERE fecha BETWEEN '2005-12-05 16:00' AND '2005-12-06 08:00'
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 07/12/2005, 15:53
 
Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 20 años, 4 meses
Puntos: 1
Cita:
Iniciado por Mithrandir
SELECT *
FROM tabla
WHERE fecha BETWEEN '2005-12-05 16:00' AND '2005-12-06 08:00'
Muchas gracias me salio a la perfeccion
  #4 (permalink)  
Antiguo 08/12/2005, 10:01
 
Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 20 años, 4 meses
Puntos: 1
Consulta con fecha y Hora

Saludos bueno pues gracias a la ayuda de este foro estuve realizando pruebas con una fecha que tengo y hora y me mas o menos asi la simplicfico para que no cnfundirlos

select *
from tabla
where fechaproceso between '06/12/2005 16:01' and '07/12/2005 08:00'


ahora bien como puedo hacer para que en donde la fecha de dia/mes/año siempre me tome el esa fecha fija cuando no utilizaba la fecha lo hacia asi

getdate()-1 and getdate() eso me traia la informacion de el dia en que se corre el sistema con el dia anterior y ya lo dejaba fijo para correrlo pero ahora que tengo que variar entre fechas como puedo hacer para hacer algo similar
  #5 (permalink)  
Antiguo 08/12/2005, 17:23
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Prueba con:

DECLARE @unafecha SMALLDATETIME
SET @unafecha = '2005-12-15 06:55'

select *
from tabla
where fechaproceso between @unafecha and DATEADD(Day, -1, @unafecha)
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #6 (permalink)  
Antiguo 08/12/2005, 17:31
 
Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 20 años, 4 meses
Puntos: 1
Cita:
Iniciado por Mithrandir
Prueba con:

DECLARE @unafecha SMALLDATETIME
SET @unafecha = '2005-12-15 06:55'

select *
from tabla
where fechaproceso between @unafecha and DATEADD(Day, -1, @unafecha)

en envio el siguiente error



Server: Msg 296, Level 16, State 3, Line 2
La conversión del tipo de datos char a smalldatetime generó un valor smalldatetime fuera de intervalo.

(0 row(s) affected)
  #7 (permalink)  
Antiguo 08/12/2005, 17:36
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
En mi equipo si funciona bien. Revisa el tipo de datos de fechaproceso, de preferencia debería ser de tipo fecha... por cierto, el between estaba al revés:

DECLARE @unafecha SMALLDATETIME
SET @unafecha = '2005-12-15 06:55'

select *
from tabla
where fechaproceso between DATEADD(Day, -1, @unafecha) and @unafecha
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #8 (permalink)  
Antiguo 08/12/2005, 17:40
 
Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 20 años, 4 meses
Puntos: 1
Cita:
Iniciado por Mithrandir
En mi equipo si funciona bien. Revisa el tipo de datos de fechaproceso, de preferencia debería ser de tipo fecha... por cierto, el between estaba al revés:

DECLARE @unafecha SMALLDATETIME
SET @unafecha = '2005-12-15 06:55'

select *
from tabla
where fechaproceso between DATEADD(Day, -1, @unafecha) and @unafecha
creo que no me supe explicar jeje bueno no importa les explico de nuevo actualmente hago esto

select *
from tabla
where fecha between '06/12/2005 13:00' and '07/12/2005 03:00'

eso tengo que hacer digamos unas 3 vces al dia lo que me cambia en algunos casos solo es el dia las horas son las mismas pero maneja 3 horas distintas en el transcurso del dia , hay alguna forma de dejar las fechas que se tomen por default estilo getdate y claro poniedo esas 3 horas que manejo distintas en el dia tambien fijas
  #9 (permalink)  
Antiguo 08/12/2005, 20:32
Avatar de Apolo
Colaborador
 
Fecha de Ingreso: abril-2003
Ubicación: ubicado
Mensajes: 7.961
Antigüedad: 21 años, 1 mes
Puntos: 109
Hola hunabku,

He combinado dos temas que tenías en uno solo (en este).

Saludos,
__________________
Planes VPS en el mundo > DirectorioVPS
Visita los foros de hosting de ComunidadHosting
  #10 (permalink)  
Antiguo 09/12/2005, 13:41
 
Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 20 años, 4 meses
Puntos: 1
.

Si mi problema es el siguiente tengo una tabla con X registro entre ellos se encuentra uno que es fecha es un getdate

lo que hago actualmente es hacer 2 consultas al dia de esta forma

select *
from tprueba
where fecha between ' 08/12/2005 16:00' and '09/12/2005 08:00'

esta primer consulta me tra los datos desde ayer a las 4 de la tarde al dia de hoy a las 8 de la mañana,

posteriormente hago el mismo solo cambio el dia que es el que varia

select *
from tprueba
where fecha between ' 09/12/2005 08:00' and '09/12/2005 12:00'


mi pregunta es que funcion poner o como hacer para no estar modificando el dia que es el unico que cambio de esos 2 querys alguien me podria ayudar
  #11 (permalink)  
Antiguo 09/12/2005, 14:35
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Creo que entonces va más por este lado:
Código:
DECLARE @unahora NCHAR(8), @otrahora NCHAR(8)
SET @unahora = ' 06:55:00'
SET @otrahora = ' 20:15:00'

select *
from tabla
where fechaproceso between (CONVERT(NCHAR(10), GETDATE(), 120) + @unahora)
	and (CONVERT(NCHAR(10), GETDATE(), 120) + @otrahora)
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #12 (permalink)  
Antiguo 09/12/2005, 14:42
 
Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 20 años, 4 meses
Puntos: 1
Cita:
Iniciado por Mithrandir
Creo que entonces va más por este lado:
Código:
DECLARE @unahora NCHAR(8), @otrahora NCHAR(8)
SET @unahora = ' 06:55:00'
SET @otrahora = ' 20:15:00'

select *
from tabla
where fechaproceso between (CONVERT(NCHAR(10), GETDATE(), 120) + @unahora)
	and (CONVERT(NCHAR(10), GETDATE(), 120) + @otrahora)

que tal amigo pues intente lo que me indicaste y lo corri asi



DECLARE @unahora NCHAR(8), @otrahora NCHAR(8)
SET @unahora = ' 11:00:00'
SET @otrahora = ' 15:00:00'

select *
from tprueba
where fecha between (CONVERT(NCHAR(10), GETDATE(), 120) + @unahora)
and (CONVERT(NCHAR(10), GETDATE(), 120) + @otrahora)

al correrlo no me marca error, pero me arroja en ceros las pantalla siendo que me deberia arojar algunos datos
  #13 (permalink)  
Antiguo 14/12/2005, 18:01
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
No sé por que no te pueda funcionar, lo único que detecto es que esta sentencia está mal:

DECLARE @unahora NCHAR(8), @otrahora NCHAR(8)

debe ser:

DECLARE @unahora NCHAR(9), @otrahora NCHAR(9)

Pero fuera de ahí no detecto nada más
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #14 (permalink)  
Antiguo 15/12/2005, 08:02
 
Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 20 años, 4 meses
Puntos: 1
Cita:
Iniciado por Mithrandir
No sé por que no te pueda funcionar, lo único que detecto es que esta sentencia está mal:

DECLARE @unahora NCHAR(8), @otrahora NCHAR(8)

debe ser:

DECLARE @unahora NCHAR(9), @otrahora NCHAR(9)

Pero fuera de ahí no detecto nada más
gracias ya solucione el problema solo juge un poco con el nvarchar gracias amigo una vez mas tu siempre me sacas del hoyo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:45.