Ver Mensaje Individual
  #3  
Antiguo 12-10-2006
fly fly is offline
Miembro
 
Registrado: abr 2005
Posts: 65
Reputación: 22
fly Va por buen camino
Si usas Dialect 1 los campos DATE llevan tambien la hora, como si fuera un DateTime.. ya ves.... Pásatea a Dialect 3 y ya queda solucionado.

De todas formas depende de como lo leas en Delphi, si lo lees como una fecha no te pilla la hora pero si lo lees como un texto si que te la muestra (por ejempo si lo visualizas en un Memo o concatenas campos mediante || o haces un CAST ... VARCHAR() ).

A mi al insertar o modificar el campo me pilla siempre la hora como 00:00:00 tanto en los campos que se inicializan en un trigger
Código SQL [-]
IF (NEW.fecha_entr IS NULL) THEN   NEW.Fecha_entr="TODAY";
como los que pongo desde Delphi
Código Delphi [-]
     Dmq1.Edit_Q.SQL.Text:=
          ' UPDATE ENTRADA SET'+
          '   fecha='+Dmq1.FechaToIB(Edit_fecha.Text)+', '+
          '   hora='+Dmq1.HoraToIB(Edit_hora.Text)+', '+
          '   origen='+Dmq1.TextoSQL(Edit_origen.Text)+', '+
          ..........

Aqui la funcion que hice tan solo se encarga de la conversión de formato, que por lo que veo es diferente a la tuya (yyyy/mm/dd):

Código Delphi [-]
 Function TDMQ1.FechaFromIB(fecha:TDateTime):String;
  var resultado:string;
      formato : TFormatSettings;
  begin
{TODO -csinprisa -ofly: Ojo no verifica fechas erroneas, terminarlo...}
   formato.ShortDateFormat:='dd/mm/yy';
   formato.DateSeparator:='/';
   resultado:='"'+DateToStr(fecha,formato)+'"';
   if resultado='""' then resultado:='NULL';
   FechaFromIB:=resultado;
  end;

Espero que te sirva de algo.
Responder Con Cita