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

Busqueda de Fecha sin hora

Estas en el tema de Busqueda de Fecha sin hora en el foro de SQL Server en Foros del Web. Hola gente... tengo una consulta que no se como resolverla.... tengo un campo datetime en una tabla y a la hora de guardar un registro ...
  #1 (permalink)  
Antiguo 03/08/2009, 20:00
Avatar de jsr_17_7  
Fecha de Ingreso: febrero-2009
Ubicación: Lima
Mensajes: 105
Antigüedad: 15 años, 2 meses
Puntos: 0
De acuerdo Busqueda de Fecha sin hora

Hola gente... tengo una consulta que no se como resolverla.... tengo un campo datetime en una tabla y a la hora de guardar un registro lo hago con GETDATE()... sucede que a la hora de hacer una busqueda simple con el campo fecha no me da ningun resultado... mi tabla y sp...


CREATE TABLE BOLETO(
DBOL_FEC_EMISION DATETIME NOT NULL,
MBOL_TOTAL MONEY NOT NULL)


CREATE PROCEDURE ALMACENA_BOLETO
@MBOL_TOTAL MONEY
AS
INSERT INTO BOLETO_VIAJE(,DBOL_FEC_EMISION,MBOL_TOTAL)
VALUES(GETDATE(), @MBOL_TOTAL)
GO



cuando quiero buscar x fecha no me da ningun valor
select * from boleto where DBOL_FEC_EMISION = '03/08/2009'

resultado .... NULL
  #2 (permalink)  
Antiguo 04/08/2009, 03:02
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Respuesta: Busqueda de Fecha sin hora

Te fijaste en esa coma (,) que hay en "INSERT INTO BOLETO_VIAJE(,DBOL..."?
Igual ha sido un error al escribir aquí, simplemente... pero está claro que sobra.

En tu cuestión de buscar una fecha, inténtalo así:

select * from boleto where DBOL_FEC_EMISION = '20090803'
__________________
..:: moNTeZIon ::..
  #3 (permalink)  
Antiguo 04/08/2009, 07:46
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Busqueda de Fecha sin hora

No te va a salir nada porque en tu campo DBOL_FEC_EMISION estas guardando la fecha y la hora, y tu estas buscando por fecha. Al buscar de esta forma la hora por defecto es 12:00:00.
Tienes 2 soluciones:
1. crear un rango.
2. obtener solo la fecha de tu campo.
La 1 es la mejor opcion.
Suerte!
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #4 (permalink)  
Antiguo 04/08/2009, 08:29
Avatar de Luoksesi  
Fecha de Ingreso: julio-2009
Mensajes: 6
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Busqueda de Fecha sin hora

Puedes hacer una busqueda convirtiendo tu campo y obteniendo tan solo la fecha,algo asi:

SELECT GETDATE() -->2009-08-04 09:24:35.103
select CONVERT(VARCHAR(11),GETDATE(),121)-->2009-08-04
SELECT CONVERT(varchar(8), getdate(), 112)-->20090804

Con esas conversiones puedes comparar:

select * from boleto where CONVERT(varchar(8), DBOL_FEC_EMISION , 112)= '03/08/2009'
  #5 (permalink)  
Antiguo 04/08/2009, 08:38
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Busqueda de Fecha sin hora

Nada mas aclarar que en la solucion que da Luoksesi, olvidate de que tu base utilice los indices de tu campo DBOL_FEC_EMISION, si es que los hay.

Ya hemos comentado hasta el cansancio el uso de campos fechas y la no utilizacion del cast o convert.
  #6 (permalink)  
Antiguo 04/08/2009, 14:18
Avatar de jsr_17_7  
Fecha de Ingreso: febrero-2009
Ubicación: Lima
Mensajes: 105
Antigüedad: 15 años, 2 meses
Puntos: 0
De acuerdo Respuesta: Busqueda de Fecha sin hora

Cita:
Iniciado por flaviovich Ver Mensaje
No te va a salir nada porque en tu campo DBOL_FEC_EMISION estas guardando la fecha y la hora, y tu estas buscando por fecha. Al buscar de esta forma la hora por defecto es 12:00:00.
Tienes 2 soluciones:
1. crear un rango.
2. obtener solo la fecha de tu campo.
La 1 es la mejor opcion.
Suerte!
Gracias a tus soluciones he podido sacarme de dudas... use la primera solucion que me dabas... bueno esto es lo que hice, lo puse dentro de un SP .... ejemplo :


CREATE PROCEDURE HORA
@FECHA DATETIME
AS
SELECT * FROM BOLETO_VIAJE
WHERE DBOL_FEC_EMISION BETWEEN @FECHA + LTRIM('00:00:00')AND @FECHA + LTRIM('23:59:59')
GO



Bueno gracias a todos x apoyarme....!!!!

Última edición por jsr_17_7; 04/08/2009 a las 14:23
  #7 (permalink)  
Antiguo 04/08/2009, 16:47
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Busqueda de Fecha sin hora

Again: Procura utlizar >= y <= para comparar campos fecha.......
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 19:55.