Datumsformat von deutschem Datum in MySQL Datum wandeln

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Manü.

    Datumsformat von deutschem Datum in MySQL Datum wandeln

    gegeben

    MySQL Tabelle, Spalte1 = Date

    Die Datumswerte werden in der Tabelle im engl. Format abgelegt = jjjj-mm-tt

    Die Werte werden durch eine Abfrage aus der Tabelle abgerufen und in folgender Art ins deutsche Format konvertiert. Die Anzeige erfolgt in einer TextBox:


    XML-Quellcode

    1. <xctk:MaskedTextBox Name="datum" Mask="00,00,0000" Text="{Binding aufgaben_datum, StringFormat={}{0:dd.MM.yyyy}}" ...


    Die Abfrage SELECT ... und Darstellung funktionieren tadellos.

    Wenn in eben dieser TextBox das deutsche Datum eingegeben wird, wird das Datum hjedoch in der Datenbank als englisches Datum geschrieben und völlig "verdorben" und das soll so natürlich nicht sein. Das Datum soll zuvor konvertiert werden.

    Wie konvertiere ich das Datum vor dem Schreiben mit UPDAT ... bzw. INSERT... in das englische Format?
    Ahoi,

    also wie ich hier lese ist das standartforamt von MySQL notwenidg, um Vergleiche bzw Berechungen mit dem Datum anzustellen.
    Wenn du damit aber nicht rechnen möchtest, dann würde ich es als varchar oder tinytext ablegen.

    EDIT: wie ich aber auch gerade in deinem anderen Thread gelesen habe, willst du ja nach Datum sortieren. Also würde ich dir raten lass MySQL sein Datumformat und konvertiere es zur Ausgabe, tut ja nicht weh.
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    Hallo Manü

    Bisher legte ich ein Geburtsdatum oder Termin als varchar in einer MySQL Tabelle ab. Jetzt wird es allerdings nötig dies Daten auch auszuwerten und z.B. statistisch zu erheben. Deshalb die Änderung von varchar zu date.

    Die Wondlung von MySQL zu visual Basic habe ich jetzt etwas hin bekommen aber es ist auch nötig Daten von meinem Fenster in vb auch in die Datenbank zu schreiben. Der Nutzer des Fensters; in diesem Fall eine maskierte TextBox schreibt das deutsche Datum in der Form tt.mm.jjjj
    Dieses Datum wird an die Datenbank übergeben und MySQL zerlegt es in das englische Format jjjj:mm:tt allerdings völlig falsch. Es entsteht ein anderes Datum.

    Das Datum muß auf dem Weg von der TextBox zur Datenbank sinnvoll umgewandelt werden z.B. von 27.05.1969 in 1969:05:27
    Ahh ... ok das war vor dem 1. Kaffe ;)

    Die String-klasse sollte eigentlich eine Funktion zum Formatieren des Datum bereithalten. Ich glaube mit Format() ging das.
    Ansonsten bietet auch MySQL eine Funktion Format() an um das Datum zu konvertieren.
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    Die Textbox muss an eine Date-Property gebunden werden, nicht an einen String. Vmtl musste einen Converter ins Binding mit einbeziehen.
    Oder du verwendetest gleich ein geeignetes Control - gibts in wpf nicht sowas wie den DateTimePicker?

    Thomas2705 schrieb:

    das deutsche Datum in der Form tt.mm.jjjj
    Dieses Datum wird an die Datenbank übergeben
    Die Form, wie der User das Datum schreibt, ist der DB egal, denn die bekommt ein Datum - keinen String. Und da wandelt die DB auch nix um.
    Sondern die Umwandlung muss wie gesagt früher stattfinden - nämlich im Binding.

    (Oder - ebenfalls bereits gesagt - beinem geeigneteren Control, bei dem der Wert per se vom Typ Date ist, wird ja garnix umgewandelt)