Ver Mensaje Individual
  #6  
Antiguo 07-10-2004
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Reputación: 22
Mick Va por buen camino
Cita:
Empezado por RONPABLO
1. en el Codigo:


var hora : time;
char_hora : varchar;
begin
hora := strtotime(14:00); // siempre uso el formato de 24 horas
dataset.fieldbyname('horaDB').asdatatime := hora;
char_hora := timetostr(dataset.fieldbyname('horaDB').asdatatime);
hora := strtotime(char_hora) + strtotime('00:15');
dataset.fieldbyname('horaDB').asdatatime := hora;
{ es un poco molesto realizar tantas conversiones pero asi me aseguro de no tener problemas con la configuración regional de cada PC ya que en ocaciones queda almacenado como 10:00 a.m. y en otros como 10:00 AM y de verdad que trae problemas con locates y con tipo de datos}
end;
No tiene sentido nada de lo que hace ese codigo, ademas de resultar una perdida de ciclos de reloj al realizar tantas conversiones, los tipos fechas y horas no se guardan en formato humano con "AM" o "am" etc, asi que es imposible que un campo guarde unas veces 10:00 AM y otras 10:00 am.
En concreto las variables datetime guardan un numero en punto flotante de modo que el el numero 0 representa las 12 de la noche y el numero 0.5 representa las 12:00 del mediodia por ejemplo. Asi que no hay necesida de conversiones. Despues los servidores de base de datos segun que servidor sea puede utilizar este mismo formato, o algun otro pero siempre con la misma logica: se guarda un numero binario indicado el numero de segundos, o de milisegundos, etc..
Que aparezcan en pantalla los valores con un AM o am , es una cuestion de representacion en el momento de realizar la impresion que nada tiene que ver con el valor guardado realmente en la variable o campo.

Podrias explicar la logica de esas conversiones ?

Saludos
Responder Con Cita