Datetime Format umwandeln



  • hy, ich habe einen wert, nähmlich einen smalldatetime wert z.B:
    '29.06.2005 23:59:59'
    und diesen sollte ich in dieses format bringen:
    '20050629 23:59:59'

    Das heisst konkret, dass "nur" die Reihenfolge vom Tag, Monat, Jahr genau umgekehrt sein muss und ohne Punkte geschrieben sein muss. Bei der Zeit ändert sich nichts!

    Gibt es in Borland eine Funktion welche dieses Umwandeln übernimmt?Hat jemand Erfahrung mit solchen Dingen?? 😕

    Vielen Dank

    trade.



  • Hi,

    schau Dir mal die Erläuterungen und Beispiele zu FormatDateTime an. Damit kannst Du die Datumdarstellung nach Belieben verbiegen.

    Gruß
    Leo



  • vielen dank, das hat mir sehr geholfen, nun habe ich das gewünschte resultat!!
    ich habe mir nun eine funktion geschrieben, die so aussieht:

    String umwandeln(String s)
    {
            String tmp;
            tmp = FormatDateTime("yyyymmdd hh:mm:ss", s);
            return tmp;
    }
    

    nun wird das datum,weches so vor der funktion aussieht: '14.05.2004 23:59:59'

    nach der funktion so ausgegeben: 20040514 23:59:59' und somit versteht es auch der MS SQL Server!

    Juhui 😃



  • äh - du schreibst Strings in DateTime-Felder? Würde ich nicht machen... Datums- und Zeitangaben sollte man immer als DateTime-Parameter übergeben.



  • @Joe
    Das Funktioniert aber nur, solange du eine von den DB-Komponenten benutzt. Wenn du mit der MySQL-API arbeitest, musst du ja einen String an die DB senden und da steht das Datum nunmal als String drin.

    @trade
    Man kann dem MySQL-Server übrigens auch sagen, welches Datums- und Zeitformat er verwenden soll. Steht irgendwo in der MySQL-Manual (mysql/docs/manual.htm) ....
    Beim laden der Datumsangaben musst du übrigens wieder zurückkonvertieren. Da ich das gleiche Problem hatte, bevor ich gemerkt hab das man den Server einstellen kann, benutze ich die Funktion in meinem Programm auch 🙂
    Du musst allerdings noch die SubStrings anpassen, da bei mir ein Datum in der Form "2004-11-02 16:36:20" angegeben wird...

    public: TDateTime mysqlToDateTime(char* str)
            {
                    AnsiString s=str;
                    return StrToDateTime(s.SubString(9,2)+"."+s.SubString(6,2)+"."+s.SubString(1,4)+" "+s.SubString(12,2)+":"+s.SubString(15,2)+":"+s.SubString(18,2));
            }
    


  • Geht es hier nicht um MS SQL?

    Man kann dem MySQL-Server übrigens auch sagen, welches Datums- und Zeitformat er verwenden soll. Steht irgendwo in der MySQL-Manual (mysql/docs/manual.htm) ....

    Und genau das ist das Problem! Woher weißt Du was dort eingestellt ist? Ergo wird es früher oder später in die Hose gehen, wenn Du hier davon ausgehst, dass immer das Gleiche Format eingestellt ist.



  • Joe_M. schrieb:

    Geht es hier nicht um MS SQL?

    *patsch* Voll verlesen 🙂


Anmelden zum Antworten