Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-08-2003
mosorio mosorio is offline
Miembro
 
Registrado: may 2003
Posts: 159
Poder: 23
mosorio Va por buen camino
Ayuda con consulta de fechas

Hola,
Tengo un inconveniente con una consulta que no se que sucede, he visto antes los otrs hilos y he hecho como dan las respuestas pero no obtengo el resultado y tengo un registro de pruebas, la sql es asi:

Cita:
SELECT
M.IDMOVIMIENTO, M.VALORMOV, M.FECHAMTO, M.HORAMTO,
M.IDMOVIMIENTO, M.IDREGISTRO
FROM
MOVIMIENTOS M
WHERE
M.IDTIPOMOVIMIENTO = 5 AND
M.FECHAMTO = '01/08/03'
Y el resultado de esta consulta es 0, al igual lo he hecho con un CAST y es igual, el cast lo he efectuado asi: CAST(FECHAMTO AS DATE) = '01/08/2003', donde esta fecha es pasada como parametro.

Espero me den una pista.
Gracias de antemano.
Responder Con Cita
  #2  
Antiguo 02-08-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 26
__cadetill Va por buen camino
como monstas el SQL (ua que dices que lo pasas por paramentro)? Haces un Query.ParamByName('Fecha').AsDatetime??

Danos algo mas de pistas

De toda manera, si no te pilla el registro, es porque el formato de fecha no es ese. Quizas mm/dd/aaaa??
Responder Con Cita
  #3  
Antiguo 02-08-2003
mosorio mosorio is offline
Miembro
 
Registrado: may 2003
Posts: 159
Poder: 23
mosorio Va por buen camino
Hola,
HAgo lo siguiente. Primero que todo decir que trabajo con dbexpress, y lo que hago es asignar la sentencia al commandtext del sql, obvio que primero cierro el cds le asigno la sentencia y luego la abro, la sentencia la construyo mediante código, ya que la tengo en una función para que me retorne la cantidad de registros y la sentencia, para evitar rodeos es esta:
Cita:
sSQLCaja = 'SELECT '+
' M.IDMOVIMIENTO, M.VALORMOV, M.FECHAMTO, M.HORAMTO, '+
' M.IDMOVIMIENTO, M.IDREGISTRO '+
' FROM '+
' MOVIMIENTOS M '+
' WHERE '+
' M.IDTIPOMOVIMIENTO = %d AND '+
' M.FECHAMTO = %s';
Estos son los parámetros que paso antes de ejecutar la qry, pero no me da resultado alguno, siempre me arroja 0 como resultado y com ya dije hay un registro. En el %d estaba como %s y da lo mismo.

No se si sigas sorprendido de como paso la sentencia antes de ejecutar la qry. Otra cosa NO ejecuto el sql.open, lo que hago es cds.open, ya que coom es dbexpress se debe trabajar con el cds.

Agradesco la ayuda de antemano.
Responder Con Cita
  #4  
Antiguo 02-08-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 26
__cadetill Va por buen camino
no se si has probado a ejecutar la sentencia que creas desde un programa externo estilo al SQL Explorer. Si no lo has hecho, pruebalo y veras donde esta el error

Otra cosa, las fechas y los campos alfanumericos, normalmente, has de ir entre comillas. Para ello te aconsejo el uso de la funcion QuotedStr

A parte, mirate lo que te comentaba en el primer post, el formato de la fecha. Segun al SGDB que ataques sera uno u otro mm/dd/yyyy, dd/mm/yyyy,......

Espero que estas pistas te lleven a la solucion
Responder Con Cita
  #5  
Antiguo 04-08-2003
mosorio mosorio is offline
Miembro
 
Registrado: may 2003
Posts: 159
Poder: 23
mosorio Va por buen camino
Hola cadetil,
En efecto ya había ejecutado la sentencia en iboconsole y el resultado es el mismo, ademas la había ejecutado con un cast por si había problemas, estoy utilizando firebir, 1.5, creo no recuerdo exactamente ya que la he instalado hace tiempo, si no hago el cast me da error ya que el campo es de tipo date. Otra cosa que hago es utilizar el quotedstr cuando paso el parámetro para completar la sentencia, pero es igual.

Espero que con estas otras pistas me puedan dar una ayuda o si es algun fallo de la versión de firebird.
Responder Con Cita
  #6  
Antiguo 04-08-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 26
__cadetill Va por buen camino
Bueno, en Firebird, almenos hasta la version 1.0.3 que la que yo utilizo, el formato de fecha es mm/dd/yyyy por loq ue si montas una sentencia estilo....

Código:
var
  Fecha : TDate;
begin
  Fecha := EncodeDate(2003, 8, 1);

  sSQLCaja = 'SELECT '+
    ' M.IDMOVIMIENTO, M.VALORMOV, M.FECHAMTO, M.HORAMTO, '+
    ' M.IDMOVIMIENTO, M.IDREGISTRO '+
    ' FROM '+
    ' MOVIMIENTOS M '+
    ' WHERE '+
    ' M.IDTIPOMOVIMIENTO = %d AND '+
    ' M.FECHAMTO = ' + 
         QuotedStr(FormatDateTime('mm/dd/yyyy', Fecha));
Deveria devolverte el valor

Ahora bien, para asegurarte de que no es problema de la fecha, yo quitaria de la sentencia SQL el TipoMovimiento (no sea que el problema lo este dando éste)

A ver si logramos dar con el problema
Responder Con Cita
  #7  
Antiguo 07-08-2003
mosorio mosorio is offline
Miembro
 
Registrado: may 2003
Posts: 159
Poder: 23
mosorio Va por buen camino
Hola cadetil!
Efectivamente, la respuesta que me das con respecto a las fechas, si son tomadas como mm/dd/aaaa, lo que he realizado es asignar al campo la fecha con FormatDateTime('dd/mm/yyyy', Fecha), y del mismo modo cuando se lee o pasa el parámetro para que no haya problemas con el valor y si llegado el caso cambio de motor de BD no surja el mismo problema.

por cierto, he intentado entrar en tu página porque he visto un mensaje con respecto a un preview pero no veno ningún menu u otra acción pra poder pasar a algún otro nivel.
Tengo SO Win2KSrv y IE60.

Gracias por la ayuda
Responder Con Cita
  #8  
Antiguo 07-08-2003
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 24
__hector Va por buen camino
Un comentario al margen:

Segun el standar SQL 92, el formato de la fecha debe ser yyyy/mm/dd. En teoria, si ponemos año/mes/dia en cualquier consulta, debe trabajar sin ningun problema en cualquier motor de bbdd.
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #9  
Antiguo 07-08-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 26
__cadetill Va por buen camino
Cita:
Posteado originalmente por mosorio
por cierto, he intentado entrar en tu página porque he visto un mensaje con respecto a un preview pero no veno ningún menu u otra acción pra poder pasar a algún otro nivel.
Tengo SO Win2KSrv y IE60.
pues es extraño, trabajo con W2k Proff y IE6 y me funciona muy bien

Nada, tendre que mirar de cambiarlo de nuevo

Por cierto, que si lo quieres te lo envio por correo

Última edición por __cadetill fecha: 07-08-2003 a las 18:41:43.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 22:52:08.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi