Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Registrar solo la hora con DBTimepicker (https://www.clubdelphi.com/foros/showthread.php?t=91168)

victor Julio 23-11-2016 06:05:27

Registrar solo la hora con DBTimepicker
 
Tengo una dificlutad en un form tengo que poner fecha y hora en una celda cada una, con un DBtimePicker modificando la función Kind: a dtkTime se observa solo la hora pero al grabar y en el dbgrid se ve una fecha de 1890 y la hora que se registro. Quisiera solo que registre la hora.
Muchas gracias por la ayuda que pueda recibir
PD: la base es access y delphi 10.1 berlin en windows 8.1.

ecfisa 23-11-2016 06:48:37

Hola.

DBtimePicker no es un componente estándar de Delphi. ¿ Tenes alguna documentación sobre él a la que podamos acceder ? (busqué pero no pude encontrar nada...)

Saludos :)

AgustinOrtu 23-11-2016 10:40:50

Pone el codigo que usas para grabar

Otra opcion es sacarle la fecha al momento de mostrar el DBGrid. Investiga el evento OnGetText del TField. En ese evento, se te suministra una variable Text de tipo string que te permite asignar el valor que queres que muestre el campo, mas alla del valor que tenga almacenado

El problema esta en que el Grid para obtener el valor seguramente haga algo como Campo.AsString. Ademas acordate que las horas se modelan como un TDateTime, osea implicitamente siempre esta la parte de la fecha

roman 23-11-2016 15:45:29

Cita:

Empezado por victor Julio (Mensaje 511128)
Tengo una dificlutad en un form tengo que poner fecha y hora en una celda cada una, con un DBtimePicker modificando la función Kind: a dtkTime se observa solo la hora pero al grabar y en el dbgrid se ve una fecha de 1890 y la hora que se registro. Quisiera solo que registre la hora.
Muchas gracias por la ayuda que pueda recibir
PD: la base es access y delphi 10.1 berlin en windows 8.1.

Bueno, esto es porque el campo que muestra el DBGrid debe se de tipo DateTime y la parte de la fecha es 0, que en Delphi equivale a 1890. O ajustas para que sea un campo de tipo Time o usas la propiedad DisplayFormat del DataSet para que sólo muestre la hora.

LineComment Saludos

lgarcia 23-11-2016 19:37:51

yo cuando voy a mostrar la parte fraccionaria de la fecha lo hago asi:
Código Delphi [-]
DTP.Time:= Frac(Mostrarsalida.Value);
donde dpt es un DateTimePicker y Mostrarsalida.Value es un campo de un sp que me devuelve en este caso la hora de salida
Cuando es en un grid formateo la celda del grid con esto:
Código Delphi [-]
hh:mm am/pm

Espero te sirva.

Saludos
Luis Garcia


La franja horaria es GMT +2. Ahora son las 06:31:15.

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