guilhemrostain
Messages postés12Date d'inscriptionjeudi 25 mars 2004StatutMembreDernière intervention12 août 2004
-
29 juin 2004 à 13:50
WhiteHippo
Messages postés1154Date d'inscriptionsamedi 14 août 2004StatutMembreDernière intervention 5 avril 2012
-
3 févr. 2011 à 21:02
Bonjour,
j'ai un champ de ma base de donnée nommé Timestamp qui est de type Entier long sur 10 chiffres (ex : 1052990591).
J'ai besoin d'extraire ce champ sous Dephi pour récuperer l'heure. Pour cela je voudrais donc le convertir en TTimeStamp sous Delphi.
Malheureusement je ne peux pas l'extraire directement en TimeStamp, je suis obligé de passer par une String, de le convertir en DateTime puis en TTImeStamp... bref c'est pas la joie et surtout ca marche pas.
"1052990591 n'est pas une date et une heure valide" dixit Delphi quand j'essaye de le convertir en DateTime.
ma_date:=DataModule.Query1.FieldByName('Time_Create').AsString; //Time_Create est un champ de type Long Int sous Access
ma_date2:=StrToDateTime(ma_date);
Est-ce que quelqu'un saurait comment je peux récupérer ce TimeStamp dans ma base de donnée sous Delphi ?
Merci
A voir également:
Delphi timestamp
Convertir timestamp en date excel - Meilleures réponses
cs_Kenavo
Messages postés702Date d'inscriptionvendredi 21 mars 2003StatutMembreDernière intervention 1 octobre 20095 29 juin 2004 à 17:20
Si la valeur que tu donnes n'est pas trop bidon, ça pourrait être le nombre de minutes depuis le 1er janvier 0001.
Donc avec
var
TStamp : TTimeStamp;
li : Longint;
Date : TDateTime;
Begin
li := StrToInt('1052990591');
TStamp.Date := Trunc(li/1440); //nombre de jour li :li-1440*(Trunc(li/1440))*60000; // nombre de minutes x 60000 nombre de millisecondes
TStamp.Time := Round(li);
Date := TimeStampToDateTime(TStamp);
end;
guilhemrostain
Messages postés12Date d'inscriptionjeudi 25 mars 2004StatutMembreDernière intervention12 août 2004 30 juin 2004 à 16:12
Bon j'ai testé et malheuresement cela ne marche pas. Deja la date ne correspond pas à la date de la base de donnée et l'heure ne correspond pas à une heure d'ouverture de la boite où je bosse ^^ (6h c'est un peu tot!)
Mais surtout lorsque je prend une autre valeur de la base de données et bien ca plante (EConvert error 78987,-38478383... n'est pas une heure correcte)
Alors je vais essayer autre chose... mais si vous avez d'autre idées pour m'aider n'hésitez pas.
cs_Kenavo
Messages postés702Date d'inscriptionvendredi 21 mars 2003StatutMembreDernière intervention 1 octobre 20095 30 juin 2004 à 17:14
Donne donc une liste de ces p... de date en entier sur 10 chiffres, on va regarder. dis nous auusi ce que tu espère récupérer. On va bien trouver !
C'est normal que ça plante : y a un truc négatif ! Y a une parenthèse qui manque !
li := (li-1440*(Trunc(li/1440)))*60000;
Ken@vo
____________________
Code, Code, Codec !
Vous n’avez pas trouvé la réponse que vous recherchez ?
guilhemrostain
Messages postés12Date d'inscriptionjeudi 25 mars 2004StatutMembreDernière intervention12 août 2004 11 août 2004 à 17:05
D'apèrs la maigre documentation que j'ai reussi à me procurer sur la base de donnée, il s'agierai "Le temps et date de création d'inscription (en secondes)"
guilhemrostain
Messages postés12Date d'inscriptionjeudi 25 mars 2004StatutMembreDernière intervention12 août 2004 12 août 2004 à 10:11
En effet, j'en avais déjà entendu parler. Mais comment as tu fais pour trouver ces dates ? Je n'arrive pas a trouver d'algo pour faire cette conversion :(
cs_Kenavo
Messages postés702Date d'inscriptionvendredi 21 mars 2003StatutMembreDernière intervention 1 octobre 20095 12 août 2004 à 11:08
Tu divises ta valeur par le nombre de secondes par jour (24*3600) et tu obtiens une date qui ressemble au TDateTime de Delphi (partie entière = jour, partie décimale = quantième de journée). Après, tu ajoutes au nombre de jours (depuis le 1er jan 1970) le nombre de jours équivalant au 1er janvier 1970 :
var
Li : LongInt;
Jan70 : TDateTime;
x : real;
s : string;
begin
Jan70 := StrToDateTime('01/01/1970 00:00');
li := 1053008086;
x:= li / (24 * 3600); //partie entière=jour + reste
x:= x + Jan70; // + 1er janvier 1970
s := DateTimeToStr(x); // conversion en date
Label1.Caption := s; // Pour visu
end;
PhilLu
Messages postés251Date d'inscriptionlundi 9 novembre 2009StatutMembreDernière intervention11 mai 2021 3 févr. 2011 à 08:19
Salut,
Puisque vous semblez bien informé au sujet des conversions de dates, j'ai une question à vous soumettre:
Je dois convertir un TimeStamp en date hh mm ss mais je n'arrive pas à savoir comment est construit ce TimeStamp!
exemple: 3375177394 qui devrait correspondre à environ 14/12/2010 à 18h10
J'ai essayé pas mal de chose mais sans résultat!
Qui peut m'aider?