Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Fecha en Oracle (https://www.clubdelphi.com/foros/showthread.php?t=18381)

santi 10-02-2005 12:32:24

Fecha en Oracle
 
Hola a tod@s,
cómo podría convertir el string fecha := '10/02/2005 00:00:00' en datetime para insertarlo tal cual en oracle?
El problema es que inicialmente tengo un data : TDateTime que contiene sólo '10/02/2005', entonces para añadirle la hora, min,seg hago :
fecha := DateToStr(data)+ ' 00:00:00';
Pero cuando lo inserto en oracle sólo lo hace como 10/02/2005.
Gracias.
Santi.

marto 10-02-2005 12:41:45

Wop!

¿Cómo lo insertas? ¿que componentes usas? ¿Como declaras las variables?

santi 10-02-2005 12:58:17

Lo declaro así:
fecha : string;
data : Tdatetime;
entonces en data tengo una fecha sin horas, min y seg. Para ello hago:
fecha := DateToStr(data)+ ' 00:00:00';
data := StrToDateTime(fecha);
y lo actualizo en la bds

sql.Add('Update tabla Set data_final = to_date( :pdata_final ,''dd/mm/yyyy hh24:mi:ss''))

ParamByName('pdata_final').AsDateTime := data;

Y como resultado en la bds sólo me ha puesto la fecha pero sin la hora :(

Se te ocurre algo?

Gracias.
santi

Coco 10-02-2005 14:12:35

De que tipo tienes declarado el parametro data_final, es de tipo DATE?

Sino una opcion valida que tienes, ya que cargas la cadena de actualizacion dinamicamente es poner directamente el valor de la fecha como string

sql.Add('Update tabla Set data_final = to_date( '+QuotedStr(fecha)+' ,''dd/mm/yyyy hh24:mi:ss''));


Suerte

marto 10-02-2005 16:18:37

Wop!

Intenta esto:
Código Delphi [-]
  sql.Add('Update tabla Set data_final = :pdata_final');
  ParamByName('pdata_final').AsDateTime := data;

Teóricamente, si tratas la variable como de tipo DateTime, no es necesario hacer el cast (de hecho creo que por eso podría estar fallando).
Tambien puedes probar a pasarle una hora distinta de 00:00:00, a ver qué pasa

santi 16-02-2005 15:06:33

No lo solucioné pero encontré el problema,
resulta que el valor para la hora 00:00:00 en oracle , no sé porqué, lo guarda pero no lo muestra en el campo de la tabla.Es decir,está pero no visible. Probé a pasarle una hora distinta y todo ok.
Gracias!
Santi.


La franja horaria es GMT +2. Ahora son las 23:28:39.

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