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

Problema en where para buscar por fecha

Estas en el tema de Problema en where para buscar por fecha en el foro de SQL Server en Foros del Web. Hola, Tengo un problema con una Query, cuando agrego esta linea: AND FechaProgramada = '2014-04-24 00:00:00.000' Me da error: Msg 242, Level 16, State 3, ...
  #1 (permalink)  
Antiguo 22/04/2014, 12:59
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 16 años, 5 meses
Puntos: 2
Problema en where para buscar por fecha

Hola, Tengo un problema con una Query, cuando agrego esta linea:
AND FechaProgramada = '2014-04-24 00:00:00.000'
Me da error:
Msg 242, Level 16, State 3, Line 1
La conversión del tipo de datos char a datetime produjo un valor datetime fuera de intervalo.
Lo cual no se porque si esta bien, les muestro mi consulta completa:

Código SQL:
Ver original
  1. SELECT
  2.  PkRequisicion
  3. ,PkCandidato
  4. ,PkEntrevistador
  5. ,MIN(FechaProgramada)AS FECHAPROGRAMADA
  6. ,FechaProgramo
  7.                 FROM ENTREVISTA
  8. WHERE PKREQUISICION=86
  9.  
  10. AND FECHAPROGRAMADA IS NOT NULL
  11.  
  12. AND FechaProgramada = '2014-04-24 00:00:00.000'
  13.  
  14. GROUP BY PKREQUISICION, PKCANDIDATO,PKENTREVISTADOR,FECHAPROGRAMADA,FECHAPROGRAMO
Alguien sabe que show?
  #2 (permalink)  
Antiguo 22/04/2014, 13:13
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Problema en where para buscar por fecha

Para ti la pregunta sería: ¿Estás trabajando en SQL Server o en MySQL?
POrque ese formato de fecha es usualmente de MySQL...

Además, un par de fallos:
1) No puedes agrupar por un campo donde se aplica una función agregada. Eso no tiene sentido.
2) No puedes usar el alias declarado en el SELECT dentro del WHERE. Ningún DBMS lo acepta. Deberías tomarlo dentro de una tabla derivada.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 22/04/2014, 14:07
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: Problema en where para buscar por fecha

Otra cosa, las FECHAS, jamás se comparan así:

12.AND FechaProgramada = '2014-04-24 00:00:00.000'

Difícilmente se cumplirá este filtro
__________________
MCTS Isaias Islas
  #4 (permalink)  
Antiguo 25/04/2014, 20:52
 
Fecha de Ingreso: abril-2014
Mensajes: 32
Antigüedad: 10 años
Puntos: 0
Respuesta: Problema en where para buscar por fecha

Prueba eliminando los guiones

'20140424 00:00:00.000'

PDT:
Y no agrupes por "FECHAPROGRAMADA"
  #5 (permalink)  
Antiguo 26/04/2014, 17:16
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: Problema en where para buscar por fecha

No se agreguen los minutos y segundos....eso solamente si fueras a comparar EXACTAMENTE una fecha como:

20140426 22:24:00

Si solamente vas a comparar fecha:

where myfecha >= '20140426'

Y eso es en todos los motores de bases de datos
__________________
MCTS Isaias Islas
  #6 (permalink)  
Antiguo 05/06/2014, 14:45
 
Fecha de Ingreso: noviembre-2011
Mensajes: 69
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Problema en where para buscar por fecha

Cita:
SELECT
PkRequisicion
,PkCandidato
,PkEntrevistador
,MIN(FechaProgramada)AS FECHAPROGRAMADA
,FechaProgramo
FROM ENTREVISTA
WHERE PKREQUISICION=86

AND FECHAPROGRAMADA IS NOT NULL

-- NO TIENE SENTIDO --AND FechaProgramada = '2014-04-24 00:00:00.000'

GROUP BY PKREQUISICION, PKCANDIDATO,PKENTREVISTADOR,
-- NO SE PUEDE HACER JAMAS -- FECHAPROGRAMADA,
FECHAPROGRAMO
EN EL CASO DE QUE NO SAQUES LA MINIMA FECHA Y QUIERAS USAR ESTA COMPARACION: AND FechaProgramada = '2014-04-24 00:00:00.000',
SIMPLEMENTE AGREGALE UNA "T" ENTRE LA FECHA Y LA HORA ASI:
AND FechaProgramada = '2014-04-24T00:00:00.000'

SALUDOS.
  #7 (permalink)  
Antiguo 05/06/2014, 16:02
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problema en where para buscar por fecha

Cita:
Iniciado por th3r0rn Ver Mensaje
Hola, Tengo un problema con una Query, cuando agrego esta linea:
AND FechaProgramada = '2014-04-24 00:00:00.000'
Me da error:
Msg 242, Level 16, State 3, Line 1
La conversión del tipo de datos char a datetime produjo un valor datetime fuera de intervalo.
Lo cual no se porque si esta bien, les muestro mi consulta completa:

Código SQL:
Ver original
  1. SELECT
  2.  PkRequisicion
  3. ,PkCandidato
  4. ,PkEntrevistador
  5. ,MIN(FechaProgramada)AS FECHAPROGRAMADA
  6. ,FechaProgramo
  7.                 FROM ENTREVISTA
  8. WHERE PKREQUISICION=86
  9.  
  10. AND FECHAPROGRAMADA IS NOT NULL
  11.  
  12. AND FechaProgramada = '2014-04-24 00:00:00.000'
  13.  
  14. GROUP BY PKREQUISICION, PKCANDIDATO,PKENTREVISTADOR,FECHAPROGRAMADA,FECHAPROGRAMO
Alguien sabe que show?
El error que te manda esque al convertir la fecha obtiene un valor fuera de rango esto es que tu base de datos no tiene las fechas como yyyy--mm--dd sino en otro formato, para saber mas o menos que formato es el que tienes prueba con un getdate()...

saludos
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: fecha, query, select
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 23:20.