Avatar billede starfish Nybegynder
25. oktober 2001 - 10:55 Der er 12 kommentarer og
1 løsning

Delphi TDateTime og MySQL Timestamp/DateTime konvertering

Er der en nem måde at konvertere min streng S der indeholder \'2001-01-01 12:34:56\' (mysql datetime) til Delphi DateTime ??

Er det bedre at bruge MySQL timestamp istedet?

Avatar billede martinlind Nybegynder
25. oktober 2001 - 11:00 #1
FormatDateTime();
Avatar billede morten_s Nybegynder
25. oktober 2001 - 11:03 #2
Jeg gør sådan her (bruger også MySql)

DateTimeToString(Str1,\'yyyy-mm-dd\',LogFromDate);
DateTimeToString(Str2,\'yyyy-mm-dd\',LogToDate);
......WHERE ( AlDB.AlDate > (\'\'\' + Str1 + \'\'\'))  and ( AlDB.AlDate < (\'\'\' + Str2 + \'\'\'))\'
Avatar billede starfish Nybegynder
25. oktober 2001 - 11:17 #3
Hmm... sidder og koger en hel del. Hvis jeg nu har min string S fra DB hvordan skal det så helt konkret laves om til Delphi TDateTime?


Avatar billede morten_s Nybegynder
25. oktober 2001 - 11:18 #4


Hvis du læser den ?

DTString :=  FieldByName(\'MyDateTime\').AsDateTime;
Avatar billede starfish Nybegynder
25. oktober 2001 - 11:44 #5
FieldByName kræver vel at jeg bruger et table (DBGrid, etc?) Det gør jeg ikke. Jeg bruger mysql.pas som er en unit der bruger libmysql.dll

er jeg for krævende? :-)
Avatar billede martinlind Nybegynder
25. oktober 2001 - 11:48 #6
FieldByName ligger på et DataSet
Avatar billede morten_s Nybegynder
25. oktober 2001 - 14:08 #7


Laver du ikke Sql kald igennem din dll ?

Hvor gør du af dine data når du får dem hjem ? Placere du dem ikke i et dataset ?
Avatar billede starfish Nybegynder
25. oktober 2001 - 16:48 #8
Jo jeg laver mine kald igennem dll\'en, men bruger ikke et dataset.

Jeg bruger
http://www.fichtner.net/delphi/mysql.delphi.phtml og det lader ikke til at han bruger dataset\'s så det gør jeg heller ikke :-)

Har aldrig brugt dataset\'s så jeg er lidt på bar bund der :-(

Har dog løst det ved at lave en function der laver mysql_datatime om til delphi_datetime...

  function MySQLtimestampToDateTime(s:string): TDateTime;

  begin
    // \'yyyy-mm-dd hh:mm:ss\'
    ShortDateFormat:= \'yyyy-mm-dd\';
    if (s = \'0000-00-00 00:00:00\') then result := now
    else
    begin
      result := StrToDateTime(s);
    end;
  end;

  function DateTimeToMySQLtimestamp(d:TDateTime): string;
  begin
    // \'yyyy-mm-dd hh:mm:ss\'
    ShortDateFormat:= \'yyyy-mm-dd\';
    result := dateTimeToStr(d);
  end;

 
Det lader til at virke fint men måske jeg har \"skudt en lille omvej\" :)
Avatar billede morten_s Nybegynder
25. oktober 2001 - 16:56 #9
Hej Starfish

Hvis du gerne vil have dine data over i et dataset til f.eks et dbGrid
er der en del muligheder for at koble på MySql:
i den nyed Delphi 6 kan du bruge dbExpress komponenterne (de er dog
desværre fejlbehæftede, du kan b.la. ikke bruge LIMIT
eller du kan bruge ODBC -> BDE
Jeg er selv begyndt at andvende komponenter herfra:
  http://www.microolap.com/top.htm
De virker og der er god support

mvh
/Morten
Avatar billede starfish Nybegynder
25. oktober 2001 - 19:57 #10
Det er kun Delphi 4, så det dbExpress kan jeg desværre ikke bruge.
Avatar billede morten_s Nybegynder
25. oktober 2001 - 20:00 #11
nej men så kan du bruge komponenterne fra


  http://www.microolap.com der er også til ver. 4
Avatar billede starfish Nybegynder
25. oktober 2001 - 21:15 #12
De koster penge, så det er ikke en mulighed. Det er til et skoleprojekt, men det færdige produkt skal måske køre i en virksomhed, så der skal ikke være nagscreens. Et krav er også at det skal være billigt, så det går lidt på kompromis.

Men det lader til at DateTimeToString kan lave det :-) Havde kun kigget på DateTimetoStr
Avatar billede morten_s Nybegynder
25. oktober 2001 - 21:37 #13
Du kan jo også bruge ODBC og BDE, det fungere også udemærket, der er bare en smule mere opsætning.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester