Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-06-2006
Avatar de FunBit
FunBit FunBit is offline
Miembro
 
Registrado: jun 2005
Ubicación: Santa Maria d'Oló
Posts: 572
Poder: 19
FunBit Va por buen camino
Consulta con DateTime

Hola de nuevo,

tengo un problema con una consulta que hago des de delphi a una bd MySQL.

La consulta és la siguiente:
Código Delphi [-]
mQuery.SQL.Clear;   
mQuery.SQL.Add('SELECT * FROM turnos');   
mQuery.SQL.Add('WHERE fecha_inicio='+QuotedStr(FormatDateTime('dd/mm/yyyy',FechaInicio)));   
mQuery.Execute;

El problema és que habiendo registros que cumplen la condición, no me saca ningún registro como resultado.

He probado con diferentes formatos de la fecha:
Código Delphi [-]
FormatDateTime('yyyymmdd hh:nn:ss',FechaInicio) 
FormatDateTime('yyyymmdd',FechaInicio) 
FormatDateTime('ddmmyyyy',FechaInicio) 
FormatDateTime('mmddyyyy',FechaInicio)

El campo fecha_inicio es tipo DateTime. Si necesitan algun otro dato... espero haberme explicado bien.

Muchas gracias de antemano.
__________________
Brot Psicòtik

Última edición por FunBit fecha: 29-06-2006 a las 11:18:00.
Responder Con Cita
  #2  
Antiguo 29-06-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
No se si me ha quedado muy claro pero,

Cita:
Empezado por FunBit
Código Delphi [-]
mQuery.SQL.Clear;   
mQuery.SQL.Add('SELECT * FROM turnos');   
mQuery.SQL.Add('WHERE fecha_inicio='''+FormatDateTime('dd/mm/yyyy',FechaInicio));   
mQuery.Execute;
No se que componente estás usando, así que no te diré nada si es por el Execute en lugar de un Open como se hace para las Querys y no el Execute para los insert/update/delete.

De todos modos prueba pasándole como parámetro la fecha y sino te funciona buscaremos otra cosa:

Código Delphi [-]
mQuery.SQL.Add('SELECT * FROM turnos');   
mQuery.SQL.Add('WHERE fecha_inicio=:fecInicio');
mQuery.SQL.ParamByName('fecInicio').AsDateTime := FormatDateTime('dd/mm/yyyy',FechaInicio);

Espero te sirva

Saludos
Responder Con Cita
  #3  
Antiguo 29-06-2006
Avatar de FunBit
FunBit FunBit is offline
Miembro
 
Registrado: jun 2005
Ubicación: Santa Maria d'Oló
Posts: 572
Poder: 19
FunBit Va por buen camino
Cita:
Empezado por Bicho
No se que componente estás usando, así que no te diré nada si es por el Execute en lugar de un Open como se hace para las Querys y no el Execute para los insert/update/delete.
Gracias Bicho,
mQuery és del tipo TMyQuery y no tiene el ParamByName.

He probado con el Open pero estamos en las mismas.

Cual és el formato correcto del parámetro fecha? (ddmmyyyy, dd/mm/yyyy, yyyymmdd,...) mi idea era que el problema estaba aquí...

Gracias de nuevo!
__________________
Brot Psicòtik
Responder Con Cita
  #4  
Antiguo 29-06-2006
Avatar de papulo
papulo papulo is offline
Miembro
 
Registrado: ago 2005
Ubicación: Lleida - Cataluña - España -Europa - Planeta tierra - Sistema solar - Via Lactea ...
Posts: 542
Poder: 19
papulo Va por buen camino
Post

Hace poco me peleé con las fechas en firebird y SQL, con este pequeño código conseguí buscar entre dos fechas capturandolas desde un TDateTimePicker

Código Delphi [-]
if bDate then
    begin
      sSQLstatement := sSQLstatement + //fechas
        ' AND st.statis_date BETWEEN date ' + QuotedStr(FormatDateTime('mm/dd/yyyy', dtFrom.Date)) +
        ' AND date ' + QuotedStr(FormatDateTime('mm/dd/yyyy', dtTo.Date));
    end;

Puede que en tu caso tengas que escribir algo así:

Código Delphi [-]
mQuery.SQL.Clear;   
mQuery.SQL.Add('SELECT * FROM turnos WHERE fecha_inicio = date' + QuotedStr(FormatDateTime('mm/dd/yyyy',FechaInicio.Date)));
mQuery.Execute;

Es solo una idea de por donde pueden ir los tiros.

PD: EL autor no se hace responsable de su ineptitud.
__________________
"El aprendizaje potencia la intuición"
Yo mismo, en un momento de inspiración. v2.0

Última edición por papulo fecha: 29-06-2006 a las 11:49:05.
Responder Con Cita
  #5  
Antiguo 29-06-2006
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Me ha pasado lo mismo hoy pero con Interbase, al utilizar la fecha directamente en QuotedStr.

Yo he utilizado
Código:
QuotedStr(FormatDateTime('mm/dd/yyyy', Fecha));
y al menos en Interbase al final me ha funcionado como he querido.

Prueda al menos esa opción anteponiendo el mes al día (es decir, formato americano), pero utilizando separadores de fecha, en este caso '/'.

Saludos
__________________
Piensa siempre en positivo !
Responder Con Cita
  #6  
Antiguo 29-06-2006
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
... se me adelantaron en la respuesta !!

Lo dicho, utiliza Formato americano con separadores /
__________________
Piensa siempre en positivo !
Responder Con Cita
  #7  
Antiguo 29-06-2006
Avatar de FunBit
FunBit FunBit is offline
Miembro
 
Registrado: jun 2005
Ubicación: Santa Maria d'Oló
Posts: 572
Poder: 19
FunBit Va por buen camino
Muchas grácias por su ayuda!!

Efectivamente era el formato de la fecha. Por mi cuenta he seguido investigando y me ha funcionado con el formato:
Código Delphi [-]
FormatDateTime('yyyy-mm-dd',FechaInicio)

Grácias de nuevo gluglu, papulo y Bicho!!
__________________
Brot Psicòtik
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
DateTime y String miguel_fr OOP 11 14-06-2005 04:03:47
DateTime scooterjgm Conexión con bases de datos 3 15-09-2004 15:58:00
Minimo y Maximo en un campo DATETIME y Consulta OnTimer bustio SQL 2 08-06-2004 07:27:57
INSERT y el DateTime SaurioNet SQL 1 05-03-2004 18:59:58


La franja horaria es GMT +2. Ahora son las 07:45:56.


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