String als Datum interpretieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • String als Datum interpretieren

    Hi,

    welche Möglichkeit habe ich, ein als VARCHAR gespeichertes DB-Feld mit Daten der Form TT.MM.JJJJ als Datum interpretieren und für Berechnungen heranziehen zu lassen?

    Ich will z.B. alle Datensätze ermitteln, bei denen das dazugehörige gespeicherte Datum zwischen dem '13.07.1874' und dem '19.02.1954' liegt. Momentan sehe ich, wenn ich das VARCHAR-Feld nicht gleich zu DATETIME umdefiniere, keine andere Lösung, als eine "SELECT *"-Abfrage durchzuführen und die Ausgaben dann PHP filtern zu lassen, was natürlich nicht gerade effizient ist.

    Hab von einem Arbeitskollegen gehört, dass es so was wie _TODATE gibt, hab jedoch bisher nichts in den MySQL-Manuals gefunden.

    Ciao!
    Gruselgockel

  • #2
    ab Version 4.1.1 kannst du STR_TO _DATE() anwenden, sonst mit SUBSTRING und DATE_FORMAT arbeiten

    Kommentar


    • #3
      [MSSQL] Teilstrings verketten, Typecast von String nach int ohne Funktion von MySQL >

      Hallo,

      Am besten wärs wohl, wenn ich da den String über SUBSTRING zerlege, über die Aliase in die Form YYYYMMDD umbaue und mit der numerischen Unter- und Obergrenze, ebenfalls in dieser Form vorliegend, vergleiche. Wenn das geht...

      Hab heute in der SBahn zwar zwei MySQL-Bücher durchgeblättert, jedoch keine Funktion zum Verketten von Strings gefunden und auch sonst keinen Hinweis, wie das in MySQL am besten gemacht wird.
      Ist "+" eine gültiger Operator für Strings oder was nimmt man am besten?

      So was z.B. klappt jedenfalls nicht:
      SELECT * FROM DAV, SUBSTRING (datum, 1, 2) as tt, SUBSTRING (datum, 3, 2) as mm where tt + mm = '0101';

      Weiterhin habe ich, außer hier im Forum mal, noch keinen Hinweis gefunden, wie man in MySQL einen String numerisch behandelt.
      So ein Cast nach int soll ja in jeder Version über eine vorangestellte 0 erzeugt werden.

      Das klappt jedenfalls auch nicht:
      SELECT * FROM DAV, SUBSTRING (datum, 1, 2) AS tt WHERE 0 + tt = 1;

      Habe leider nur MySQL 3 auf einem meiner Server, auf dem das Skript auch laufen soll, also fallen CAST() und CONVERT() schon mal wieder weg...

      Ciao und schöne SQL-Träume!
      Gruselgockel

      Kommentar


      • #4
        Re: [MSSQL] Teilstrings verketten, Typecast von String nach int ohne Funktion von MyS

        Original geschrieben von Gruselgockel
        keine Funktion zum Verketten von Strings gefunden
        CONCAT steht da nicht drin?

        Die Onlinedoku ist nicht in den Büchern erwähnt?

        Entweder du gibst die Bücher zurück oder du hast im nächsten Winter weniger Heizkosten
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Re: Re: [MSSQL] Teilstrings verketten, Typecast von String nach int ohne Funktion von

          Original geschrieben von mrhappiness
          CONCAT steht da nicht drin?

          Die Onlinedoku ist nicht in den Büchern erwähnt?
          In der Tat: Nö.
          Concat war ja eigentlich naheliegend, ok...

          Jetzt muss ichs nur noch hinkriegen, dass es läuft, aber schaff ich dann schon, nehm ich mal an.

          Original geschrieben von mrhappiness
          Entweder du gibst die Bücher zurück oder du hast im nächsten Winter weniger Heizkosten
          [/B]
          Inzwischen ist mir auch klar, dass das beides nur so einigermaßen oberflächliche und unvollständige Quicki-Kürslein für Anfänger sind. Hat ja schließlich damals auch ein Berufsschullehrer empfohlen und nur deswegen hab ich sie mir gekauft.

          Ciao!
          Gruselgockel

          Kommentar

          Lädt...
          X