Comment encoder un datetime en delphi
Je sais comment les utiliser encodedate en Delphi pour encoder personne YY, MM et JJ dans un champ datetime ou de l'utilisation encodetime pour encoder HH individuel, SS, MM et MS en champ datetime mais est-il un moyen de spécifier à la fois la date et l'heure dans un champ datetime?
Coz avec encodedate je ne peut pas spécifier le temps et avec encodetime je ne peux pas préciser la date...
par exemple, comment puis-je définir un champ datetime à 2009-11-28 14:23:12.000
S'il vous plaît aider.
Grâce.
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser le EncodeDateTime fonction declarated dans le DateUtils unité.
Voir cet exemple
Une autre option
La deuxième option fonctionne parce que les TDatetime Il est stocké comme un Double (
TDateTime = type Double;
), avec la date en tant que partie intégrante (le EncodeDate fonction renvoie l'intégrale), et le temps comme partie fractionnaire.La partie date de la TDateTime représente le nombre de jours qui se sont écoulés depuis 12/30/1899. un TDateTime peut être n'importe quelle date, jusqu'au 31 Décembre 9999 (valeur décimale 2,958,465), les valeurs TDateTime peut aussi être négative. La valeur décimale -693593 correspond à 1 Jan 0001.
voir les thèses des exemples
Remarque importante à partir de embarcadero site :
pour de plus amples informations, vous pouvez consultez ce lien
TDateTime
est un horrible type à utiliser lorsque vous faites quelque chose de non trivial, de toute façon. Il a non seulement une gamme limitée, mais plus important encore, il a pas de concept de fuseaux horaires, heure d'été, ou des calendriers différents, soit. Ainsi, alors que vous avez raison, je ne considère pas ce problème dans le domaineTDateTime
est approprié pour.Embarcadero états: Il n'existe pas de Système.TDateTime des valeurs entre -1 et 0.
Même Embarcadero ne semblent pas connaître. C'est aussi une erreur dans leur fichier d'aide de Delphi 7
Il devrait être, il n'y a pas de Système.TDateTime valeurs entre 0 et 1.