Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Campo Time no anda en InterBase? (https://www.clubdelphi.com/foros/showthread.php?t=53682)

Carmelo Cash 27-02-2008 03:16:58

Campo Time no anda en InterBase?
 
Hola Foro:
Necesito guardar en un campo la hora. Si uso un campo Timestamp, guarda fecha y hora, si quiero crear un campo Time me dice "Dialect 1 no support referernce to Time".
La pregunta entoces son cuatro.
1 ¿qué dialecto tengo que usar?
2 ¿Si la Base de datos está creada y funcionando puedo cambiar el dialecto? 3 ¿como se cambia el dialecto?
4 ¿Me puede trarer algún problema cambiar de dialecto?
Desde ya muchas gracias

rastafarey 05-03-2008 17:39:56

resp
 
3 ..

Carmelo Cash 07-03-2008 01:06:45

Sigo con el problema
 
Gracias por la respuesta, pero aún no puedo resolver este tema. creo que me compliqué demasiado en hacer la pregunta.
Tal vez si me pueden contestar lo siguiente. Se puede guardar solamente la hora en un campo Timestamp?.
yo hago lo siguiente:

Paso 1
------
Creo el campo en la tabla
create table trabajos (
....
Hora Timestamp,
...
Paso 2
------
En la aplicación coloco un Datatimer y lo seteo para que pida y muestra la hora.

Paso 3
------
Consulta de actualización
update trabajos
set hora=:PHora

(el parametro PHora es tipo Time)

Paso 4
--------
luego actualizo
parabyname('Phora').value:=Datetimer.time

Paso 5
------
Por último miro el dato

select hora from trabajos

y aparece ....

'06/03/2008 15:30:25'

y necesito que aparezca

'15:30:25'

¿qué estoy haciendo mal?

Desde ya, gracias por su atención.

rastafarey 07-03-2008 17:53:17

Resp
 
Si estas guardando timestamp te guardara hor ay fecha.
Que quieres que solo te muestre la hora eso es cuestion de formatear el componente que muestra el dato. Pero en el campo hay fecha y hora.

Te recomiendo que uses time y olvidae de los problemas y no te compliques mas de lo que debs con una casa tan cencilla.

rolandoj 07-03-2008 22:51:03

Usa formato de caracteres
 
Hola,

Yo te recomiendo algo distinto:

Guarda la información en formato de caracteres. Tan solo deberás escribir pequeñas rutinas para convertir entre el formato de fecha que uses y el formato de almacenamiento de caracteres.

La ventaja de este método es que es portable entre diferentes motores de Bases de Datos y no se presta a ambiguedad en su presentación.

Las fechas se deberían colocar en formato aaaammdd

Las horas, si son a nivel de segundos, como hhmmss

Si necesitas fecha y hora, usa aaaammddhhmmss

Si empleas esté método verás también que las consultas en la base de datos serán más fácil de manejar.

Personalmente, siempre uso esa metodología, nunca trabajo con formatos propietarios para fecha y hora, ni para otros tipos de datos que puedan manejarse en formato de caracteres. Entre otras cosas porque hace mucho tiempo aprendí, de la manera dura, que es mucho mejor usar formatos standard y no trabajar con peculiaridades de un motor.

Suerte

Carmelo Cash 08-03-2008 01:18:54

Gracias por responder. yo coincido con "Rastafarey", quiero usar Time. pero
si quiero crear un campo Time me dice

"Dialect 1 no support referernce to Time".

Alguién sabe que es eso en InterBase?

rastafarey 11-03-2008 17:17:30

resp
 
"Dialect 1 no support referernce to Time".

La refecncia time no ets soprtado para el dialecto 1.

Eso es lo que dice con ese dialecto no pudes usar time para usasr tieme debes usar dialect 3.

No se que es lo que no se entiende.

La solucion.

1. saca un respaldo trasportable de la base de datos.
2. Extraer es escript cambia los campos de lso campos que tengas que cambiar cambia el dialecto a 3 ejecuta el escrit.
3. Restaura la base de datos con la opcion que no remplace la base datos.

Y no preguntes como se saca un respaldo.

y se supone que el resplado va hacer desde el bakup que sacaste hacia la nuevabase de datos.

Carmelo Cash 11-03-2008 22:39:42

Gracias por tu ayuda
 
Gracias por tu ayuda, pero

"No se que es lo que no se entiende."
y
"Y no preguntes como se saca un respaldo."

Recuerda que no tienes ninguna obligación en responder.


La franja horaria es GMT +2. Ahora son las 03:04:01.

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