Ver Mensaje Individual
  #4  
Antiguo 15-02-2023
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Reputación: 20
movorack Va camino a la famamovorack Va camino a la fama
¡Hola, pgranados!

No es una fecha random, el cálculo de fechas en Delphi empieza desde el 30/Dic/1899. En un valor numérico (Double) que va aumentando desde ese día.

System.TDateTime
Cita:
TDateTime implementa el tipo de datos Delphi TDateTime y las rutinas de biblioteca de tiempo de ejecución de fecha/hora que utilizan el tipo de datos TDateTime.

La clase TDateTime hereda un miembro de datos val, declarado como double, que contiene el valor de fecha y hora. La parte entera de un valor TDateTime es el número de días que han pasado desde el 30 de diciembre de 1899. La parte fraccionaria de un valor TDateTime es la hora del día. La fecha correcta máxima admitida por los valores TDateTime está limitada al 31/12/9999 23:59:59:999. Todos los valores que van más allá de esta fecha causan errores y excepciones en la mayoría de las rutinas que operan con valores TDateTime.
Entonces:
0 = 30/12/1899
2.75 = 1/Ene/1900; 6:00 P.M.
35065 = 1/Ene/1996; 12:00 A.M
44972 = 15/Feb/2023; 12:00 A.M.

Cuando en tu consulta validas el campo de fecha y en la tabla está como null. Al leerlo como TDateTime, se convierte a 0 y por lo tanto a la fecha que indicas.

Si lo que debes validar es si el campo está null puedes usar la función IsNull.

Código Delphi [-]
if DM.FDQueryFecha.isNull then
begin
  DM.FDQuery.Edit;
  DM.FDQueryFecha.Value:= now;
  DM.FDQuery.Post;
  showMessage('Fecha Actualizada');
end;
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita