Ver la Versión Completa : Campo Time no anda en InterBase?
Carmelo Cash
27-02-2008, 03:16:58
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
3 ..
Carmelo Cash
07-03-2008, 01:06:45
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
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
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
"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, 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.
vBulletin v3.6.8, Derechos ©2000-2013, Jelsoft Enterprises Ltd.