Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-03-2008
Avatar de georgejg
georgejg georgejg is offline
Miembro
 
Registrado: ene 2008
Ubicación: Colombia
Posts: 37
Poder: 0
georgejg Va por buen camino
Guardar Solo Hora usando DateTimePicker

Hola a todos.

El problema es el siguiente:

1. Estoy usando una Base de Datos Oracle y en la tabla "PRUEBAS" tengo un campo lo llamaremos "HORA" de tipo Date.

2. Puedo ingresar varios datos tipo string, Number, etc..
3. Usando un DateTimePicker y la propiedad Kind a dtkDate mas un Trunc(DateTimePicker1.Date) puedo guardar solo la fecha.

4. Usando un DateTimePicker y cambiando su propiedad Kind a dtkTime el datetimepicker me muestra solo la Hora.

pero si lo quiero guardar en el Campo "HORA" el dateTimePicker de la siguente manera:



Código Delphi [-]BDMasdata.TablePrueba.FieldByName('HORA').AsDateTime:= DateTimePicker2.Time;




pero me guarda tambien la fecha.

ahora mi pregunta es usando un DateTimePicker como puedo guardar solo la hora en una base de datos oracle teniendo en cuenta que el campo "HORA " es de Tipo Date.


se les agradece un pronta respuesta.
Responder Con Cita
  #2  
Antiguo 20-03-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Hola, es logico que en un campo tipo Date, cuando quieres grabar solo la hora es imposible, siempre te grabara la fecha, Oracle no tiene un campo tipo DateTime o solo TimeStamp?.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #3  
Antiguo 20-03-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Agregando un poco a lo dicho por Fernando, si dices que Oracle no tiene un time eso es porq el date lo puede reemplezar, o sea que guarda el valor de tipo real, el entero para la fecha el decimal para la hora
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #4  
Antiguo 20-03-2008
Luis F. Orjuela Luis F. Orjuela is offline
Miembro
 
Registrado: may 2003
Ubicación: Bogotá - Colombia
Posts: 68
Poder: 21
Luis F. Orjuela Va por buen camino
Talking

Bueno amigo, le cuento que SÍ se puede y es así:

Código Delphi [-]
var: Hora: Time;
var: Fecha: Date;

procedure .....
begin
 Hora:= Frac(DateTimePicker1.Time);
 Fecha:=Int(DateTimePicker1.Date);
end;

Con lo anterior te quiero decir que los campos DateTime en la parte entera guardan la fecha y en la parte fracción guardan la hora.

Un caluroso saludo desde BOGOTA - COLOMBIA
__________________
Ing. LUIS FERNANDO ORJUELA
BOGOTA - COLOMBIA
Responder Con Cita
  #5  
Antiguo 22-03-2008
Avatar de georgejg
georgejg georgejg is offline
Miembro
 
Registrado: ene 2008
Ubicación: Colombia
Posts: 37
Poder: 0
georgejg Va por buen camino
Hola a Todos e probado lo q digiste Luis F. Orjuela pero:

1. me sale un error al querer declarar una variable tipo Time
2. al guardar directamente sin utilizar variable es decir:

Código Delphi [-]
BDMasdata.TablePrueba.FieldByName('HORA').AsDateTime:= Frac(DateTimePicker1.Time);

y en el DateTimePicker1.Time esta: 08:50:00 al guardarlo en la base de datos me sigue mostrando una fecha mas la hora es decir 12/01/1981 08:50: (los ultimos dos 0 no los muestra) .

les comento el tema en concreto.

necesito guardar la hora "en un campo unico" para luego en otra parte del aplicativo me permita realizar una consulta seleccinando la hora.

no se si me pudan recomenadar u orientar.

por ahora lo unico q se me ocurre es cambiar el datetimepicker por un maskedit y guardarlo como tipo string.

caulquier recomendacion es bienvenida
Responder Con Cita
  #6  
Antiguo 22-03-2008
Luis F. Orjuela Luis F. Orjuela is offline
Miembro
 
Registrado: may 2003
Ubicación: Bogotá - Colombia
Posts: 68
Poder: 21
Luis F. Orjuela Va por buen camino
Así como tú dices,, entonces debes declarar el campo de tu tabla en la base de datos del tipo "TIME" , pues así sólo guarda horas, minutos y segundos..
Ahora el campo tipo "DATE", pues guarda fechas, y la combinación de los dos es "TIMESTAMP" que guarda fecha y horas, minutos y segundos...

Teniendo en cuenta la explicación anterior.....

El error es el siguiente:
Código Delphi [-]
BDMasdata.TablePrueba.FieldByName('HORA').AsDateTime:= Frac(DateTimePicker1.Time);

debe ser:

Código Delphi [-]
BDMasdata.TablePrueba.FieldByName('HORA').AsTime:= Frac(DateTimePicker1.Time);


Suerte..
__________________
Ing. LUIS FERNANDO ORJUELA
BOGOTA - COLOMBIA
Responder Con Cita
  #7  
Antiguo 23-03-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Ya se ha dicho hasta la saciedad, pero lo repito una vez más para que se tenga en cuenta: Una hora sin su fecha asociada, no tiene toda la información completa.

Si después necesitas hacer cálculos con las horas, o incluso filtrar la información por esas horas, crea el campo de tipo TimeStamp. Es típico que después de tenerlo todo funcionando querer un listado de las últimas 24 horas, y como tengas por separado la hora de la fecha te resulta más engorroso.

Los cálculos (diferencias entre horas) sin tener en cuenta la fecha, puede darte dolores de cabeza. Teniéndo en cuenta la fecha, es una llamada a las rutinas de la unidad DateUtils de delphi.

Si solo quieres mostrar la hora, usa el DisplayFormat del campo a hh:nn:ss (lo negrita te faltará y por eso se come los segundos). Si después quieres hacer búsquedas de un sólo día tienes a tu disposición la fecha y hora. Muy útil para turnos que traspasen la medianoche.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 23-03-2008 a las 10:17:02.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como Guardar Desde Un Datetimepicker A Una Base De Datos jorgeluisc Firebird e Interbase 3 27-05-2006 01:01:57
Elimianar la hora de un DateTimePicker Torreblanca OOP 2 07-07-2005 22:27:31
Problema usando datetimepicker con MySql tebyr MySQL 5 19-11-2004 17:38:39
Ver Hora en DateTimePicker en formato de 24Hrs franciscobucio Varios 5 18-10-2004 20:09:36
obtener hora de un datetimepicker jpcancino Varios 2 20-02-2004 22:31:45


La franja horaria es GMT +2. Ahora son las 06:58:55.


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
Copyright 1996-2007 Club Delphi