Foros Club Delphi

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

agustin173 15-10-2010 00:38:19

Formato de Fecha
 
Hola muchachos como estan todos

Cuando Grabo la fecha en el sistema me la pone de la siguiente siguiente manera 2010/10/14 y debe ser 14/10/2010 me explico mejor

Estoy usando delphi 7
uso SQL Server 2008
windows 7 en ingles pero le baje la actualizacion en español y esta en español
el regional del windows esta en Republica Dominicana con el formato de fecha 14/10/2010.
Una tabla llamada = Pais
con tres campos = codigo(int), fecha(Date), Pais(varchar(25))

el codigo es el siguiente:
Código Delphi [-]
// Guardar los Datos en la Base de Datos
     Temp.SQL.Clear;
     Temp.Sql.Text:='Insert into Pais (Pais, Fecha) values(:Pais, :Fecha)';
     Temp.Parameters.ParamByName('PAIS').Value:= EDPais.text;
     Temp.Parameters.ParamByName('FECHA').Value:= FormatDateTime('yyyy/mm/dd',now);
     Temp.ExecSQL;
     ShowMessage('Registro Guardado Con Exito');
     PaisGuardar.Enabled := False;
     PaisCancelar.Enabled := False;
     PaisNuevo.Enabled := True;

Lo que sucede es lo siguiente la fecha la coge automatica del sistema y la fecha esta de la siguiente manera 14/10/2010 o sea dd/mm/yyyy y la graba bien pero cuando consulto me la trae como 2010/10/14 o sea yyyy/mm/dd que no debe ser.

pense que seria porque la pose asi yyyy/mm/dd cuando lo cambio asi dd/mm/yyyy me da un error y me dice que la fecha no conside con el formato que puedo hacer para que me salga la fecha asi 14/10/2010 ayudenme por favor no entiendo este eneredo.

ContraVeneno 15-10-2010 00:43:36

Código Delphi [-]
// Guardar los Datos en la Base de Datos      
Temp.SQL.Clear;      
Temp.Sql.Text:='Insert into Pais (Pais, Fecha) values(:Pais, :Fecha)';      
Temp.Parameters.ParamByName('PAIS').Value:= EDPais.text;      
Temp.Parameters.ParamByName('FECHA').Value:= now;      
Temp.ExecSQL;      
...

Lo interesante de usar parámetros es que no tienes que hacer conversiones... siempre y cuando la fecha esté declarada como fecha...

Ahora, solo tendríamos que ver dónde y cómo lo estas mostrando.

agustin173 15-10-2010 00:56:18

contraveneno

lo puse como me digiste pero me da un error a la hora de grabar el error es el siguiente:

La aplicacion utiliza un valor de tipo no valido para la operacion actual

y lo manda a la linea "Temp.execsql" ese error proviene de la lineas de la fecha

olbeup 15-10-2010 09:03:47

En SQL SERVER 200? las fechas se graban conforme está configurado tu ordenador en configuración regional del panel de control de Windows, que lo habitual es dd/mm/yyyy, y a la hora de recuperar los datos en este caso es una fecha siempre te la devuelve en formato yyyy/mm/dd, y en tu Grid la fecha te saldrá dd/mm/yyyy, no se cual es el problema que tienes.

Un saludo.

BlueSteel 15-10-2010 18:03:43

A mi me pasaba lo mismo.. el SQL me graba la fecha con el formato yyyy/mm/dd y para poder mostrar la fecha a mis consultas le pongo la siguiente sentencia


Código SQL [-]
Select codigo, Convert(Char(10), fecha, 103) As Fecha, pais
From Pais

no se si esto te sirva...

Salu2:D:p

agustin173 15-10-2010 23:30:03

no me funciono nada de eso no se que hacer, pero creo que el problema es el windiows 7 este.

agustin173 15-10-2010 23:32:02

el problema es que me cuando la consulta me la devuelve yyyy/mm/dd y se voy fisicamente a los datos en la basde de dato tambien esta yyyy/mm/dd.

Caral 15-10-2010 23:39:34

Hola
Tal vez usando:
ShortDateFormat := 'dd/mm/yyyy';
Cuando traes los datos.
Saludos

ecfisa 16-10-2010 04:02:14

Cita:

Empezado por agustin173 (Mensaje 379448)
el problema es que me cuando la consulta me la devuelve yyyy/mm/dd y se voy fisicamente a los datos en la basde de dato tambien esta yyyy/mm/dd.

Cuando nombraste Windows 7, me acordé de este post , quizá te pueda servir.

Saludos. :)

agustin173 19-10-2010 03:25:03

que va nada funciona, pero se que es el windows talvez cuando reinstale un dia podre ver el error.

Roilo 12-04-2011 17:33:32

Cita:

Empezado por Caral (Mensaje 379449)
Hola
Tal vez usando:
ShortDateFormat := 'dd/mm/yyyy';
Cuando traes los datos.
Saludos

GRACIAS CARAL!!!!! eso me gustó y me sirbió... :p


La franja horaria es GMT +2. Ahora son las 05:40:05.

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