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

Comparaciones con Fecha

Estas en el tema de Comparaciones con Fecha en el foro de SQL Server en Foros del Web. Que tal, tengo un problema que me esta rompiendo la cabeza :( sobre todo con el manejo de fechas, miren tengo una tabla con un ...
  #1 (permalink)  
Antiguo 06/04/2015, 08:43
 
Fecha de Ingreso: febrero-2015
Mensajes: 89
Antigüedad: 9 años, 9 meses
Puntos: 1
Comparaciones con Fecha

Que tal, tengo un problema que me esta rompiendo la cabeza :(

sobre todo con el manejo de fechas, miren tengo una tabla con un campo que tiene
estos registros:

2015-02-24 00:00:00.000
2015-02-06 13:29:57.000

Y son tipo date time (Fecha_Hora),

Y Tengo esta consulta

Código SQL:
Ver original
  1. SELECT *   FROM  Llamada_Stage A
  2.             INNER JOIN  ( SELECT codigo_ficha, fecha_gestion
  3.                                     FROM Agr_GestionUsuarios
  4.                                 )  B  ON A.codFicha = b.codigo_ficha  AND   fecha_hora   < CONVERT(datetime,CONVERT(VARCHAR(8), b.fecha_gestion, 112)) AND codFicha !=0



Lo que sucede esque en la tabla Agr_GestionUsuarios tengo la fecha pero con tipo de dato varchar, ejempl:
06/02/2015
25/02/2015

Quiero traerme todos los registros de la tabla llamada_stage cuando su campo fecha es menor que la otra tabla.

El detalle esta en que el query funciona pero me trae los registros cuando las fechas son iguales, y yo quiero que sean los menores y no los iguales...

Eh probado con otras conversiones y tengo el mismo resultado :/

Alguna idea?.

Saludos,
  #2 (permalink)  
Antiguo 06/04/2015, 08:48
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Comparaciones con Fecha

Pues agrégale las horas a las segundas fechas, colócales 23:59:00

Ahora bien, debes saber que cuando aplicas CAST / CONVERT, el motor deja de utilizar los índices, ¿de acuerdo?
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 06/04/2015, 08:53
 
Fecha de Ingreso: febrero-2015
Mensajes: 89
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Comparaciones con Fecha

Cita:
Iniciado por iislas Ver Mensaje
Pues agrégale las horas a las segundas fechas, colócales 23:59:00

Ahora bien, debes saber que cuando aplicas CAST / CONVERT, el motor deja de utilizar los índices, ¿de acuerdo?
Gracias por la respuesta.

Si, lo tengo en cuenta.

Ahora en lo que mencionas sobre agregarles "horas". Lo que se me viene a la mente es hacer un concat, espero sea eso a lo que te refieres... Por otro lado es necesario hacerlo?
Ya que tengo valores en el campo datetime de esta forma: 2014-11-15 00:00:00.000 Entonces en estos casos la comparación si debería de salir .. ya que no tienen hora.

Existe alguna forma en que las comparaciones con fecha solo tomen dia-mes-año ?.


Intente con esto pero nada aún:

convert(datetime,fecha_hora , 105) > convert(datetime,fecha_hora , 105)

Atento a tu respuesta.

Saludos,

Última edición por jmendezg; 06/04/2015 a las 08:59
  #4 (permalink)  
Antiguo 06/04/2015, 09:05
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Comparaciones con Fecha

porque este convert?

Código SQL:
Ver original
  1. CONVERT(datetime,CONVERT(VARCHAR(8), b.fecha_gestion, 112)

no seria mejor algo como esto:

Código SQL:
Ver original
  1. DECLARE @fecha VARCHAR(20)
  2. SET @fecha='04/05/2015'
  3.  
  4. SELECT CONVERT(datetime,@fecha)
  5. --2015-04-05 00:00:00.000
  6. SELECT CONVERT(VARCHAR(20),CONVERT(datetime,@fecha),110)
  7. --04-05-2015
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 06/04/2015, 10:05
 
Fecha de Ingreso: febrero-2015
Mensajes: 89
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Comparaciones con Fecha

Cita:
Iniciado por Libras Ver Mensaje
porque este convert?

Código SQL:
Ver original
  1. CONVERT(datetime,CONVERT(VARCHAR(8), b.fecha_gestion, 112)

no seria mejor algo como esto:

Código SQL:
Ver original
  1. DECLARE @fecha VARCHAR(20)
  2. SET @fecha='04/05/2015'
  3.  
  4. SELECT CONVERT(datetime,@fecha)
  5. --2015-04-05 00:00:00.000
  6. SELECT CONVERT(VARCHAR(20),CONVERT(datetime,@fecha),110)
  7. --04-05-2015
Gracias libras,

Acabo de dar con la respuesta, al parecer cometia un error básico de no ver que data me devuelve. Mucho BD este fin de semana ....

Saludos,

Etiquetas: comparaciones, fecha, registros, select, tabla
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 11:12.