STR TO DATE - Problem
Hallo zusammen,
habe in meiner Datenbank eine Spalte vom Typ "DATE" mit verschiedenen Datumsangaben im Fomat: yyyy-mm-dd
Ich würde gerne das Ergebnis mir anzeigen lassen.
Dank Google bin ich jetzt soweit:
bzw.
Letzteres klappt leider nicht, kann mir jemand sagen warum?
Danke euch!
habe in meiner Datenbank eine Spalte vom Typ "DATE" mit verschiedenen Datumsangaben im Fomat: yyyy-mm-dd
Ich würde gerne das Ergebnis mir anzeigen lassen.
Dank Google bin ich jetzt soweit:
select * from test.mytable where str_to_date(gebdatum,'%Y-%m-%d');
bzw.
select * from test.mytable where str_to_date(gebdatum,'%d.%m.%y.');
Letzteres klappt leider nicht, kann mir jemand sagen warum?
Danke euch!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 643470
Url: https://administrator.de/contentid/643470
Ausgedruckt am: 22.11.2024 um 06:11 Uhr
9 Kommentare
Neuester Kommentar
Zitat von @newit1:
Hallo zusammen,
habe in meiner Datenbank eine Spalte vom Typ "DATE" mit verschiedenen Datumsangaben im Fomat: yyyy-mm-dd
Ich würde gerne das Ergebnis mir anzeigen lassen.
Dank Google bin ich jetzt soweit:
bzw.
Letzteres klappt leider nicht, kann mir jemand sagen warum?
Danke euch!
Hallo zusammen,
habe in meiner Datenbank eine Spalte vom Typ "DATE" mit verschiedenen Datumsangaben im Fomat: yyyy-mm-dd
Ich würde gerne das Ergebnis mir anzeigen lassen.
Dank Google bin ich jetzt soweit:
select * from test.mytable where str_to_date(gebdatum,'%Y-%m-%d');
bzw.
select * from test.mytable where str_to_date(gebdatum,'%d.%m.%y.');
Letzteres klappt leider nicht, kann mir jemand sagen warum?
Danke euch!
Moin,
bitte beantworte du doch erst einmal folgende Fragen:
- Welches Datenbanksystem?
- Wie lautet die Fehlermeldung?
- Warum hast du deine Bedingung nicht komplettiert?
Danach sehen wir mal weiter
zum letzten Punkt:
Du schreibst: "Zeige mir alle Datensätze, bei denen das Geburtsdatum(Format Tag.Monat.Jahr)"
Das wäre so, als wenn du ins Autohaus gehtst und fragst: "Zeige mir alle Autos, die die Farbe"
Da fehlt einfach etwas.
Gruß
em-pie
Ohne weiteren Infos schließe ich mich @michi1983 an.
Im 2. Statement hinter der Jahreszahl ist noch ein "."
Gruß
Im 2. Statement hinter der Jahreszahl ist noch ein "."
Gruß
Entsprechend ist der Befehl wahrscheinlich sogar teilweise falsch zusammen gegoogelt....
nicht nur teilweise.
Zitat von @newit1:
Großes Sorry!
Ihr habt völlig Recht mit euren Antworten.
Manchmal sollte man einfach 5 Minuten Pause machen und danach nochmal nachdenken ;)
Daher nochmal:
Im Hintergrund läuft phpmyadmin
Das eigentliche Ziel ist ein anderes, als das ich formuliert habe...
In der Datenbank steht das Datum im Format "2021-01-22"
Ich würde es nur gerne im Format "22.01.2021" ausgeben.
Entsprechend ist der Befehl wahrscheinlich sogar teilweise falsch zusammen gegoogelt....
Großes Sorry!
Ihr habt völlig Recht mit euren Antworten.
Manchmal sollte man einfach 5 Minuten Pause machen und danach nochmal nachdenken ;)
Daher nochmal:
Im Hintergrund läuft phpmyadmin
Das eigentliche Ziel ist ein anderes, als das ich formuliert habe...
In der Datenbank steht das Datum im Format "2021-01-22"
Ich würde es nur gerne im Format "22.01.2021" ausgeben.
Entsprechend ist der Befehl wahrscheinlich sogar teilweise falsch zusammen gegoogelt....
Gut, dass du keine Autos baust
Dann hilft dir:
select DATE_FORMAT(gebdatum, '%d.%m.%Y') as Birthdate, NAME from myTable
Mit Where schränkst du deine Datensätze ein, z.B. wenn du wissen willst, wer in 1995 geboren ist...
Moin,
Da hast Du ein grundsätzliches Verständnisproblem. In der Datenbank steht das Datum nicht in einem bestimmten Format, sondern da steht eine Zahl, die ein Datum repräsentiert. Diese Zahl wird je nach culture von Deiner Datenbank in einem bestimmten Format im Standard ausgegeben. Wenn Du ein anderes Ausgabeformat möchtest, dann musst Du entweder den Standard ändern oder mit einem Befehl das gewünschte Format angeben (siehe Post von @em-pie).
Liebe Grüße
Erik
Zitat von @newit1:
In der Datenbank steht das Datum im Format "2021-01-22"
Ich würde es nur gerne im Format "22.01.2021" ausgeben.
In der Datenbank steht das Datum im Format "2021-01-22"
Ich würde es nur gerne im Format "22.01.2021" ausgeben.
Da hast Du ein grundsätzliches Verständnisproblem. In der Datenbank steht das Datum nicht in einem bestimmten Format, sondern da steht eine Zahl, die ein Datum repräsentiert. Diese Zahl wird je nach culture von Deiner Datenbank in einem bestimmten Format im Standard ausgegeben. Wenn Du ein anderes Ausgabeformat möchtest, dann musst Du entweder den Standard ändern oder mit einem Befehl das gewünschte Format angeben (siehe Post von @em-pie).
Liebe Grüße
Erik
Zitat von @erikro:
Moin,
Da hast Du ein grundsätzliches Verständnisproblem. In der Datenbank steht das Datum nicht in einem bestimmten Format, sondern da steht eine Zahl, die ein Datum repräsentiert. Diese Zahl wird je nach culture von Deiner Datenbank in einem bestimmten Format im Standard ausgegeben. Wenn Du ein anderes Ausgabeformat möchtest, dann musst Du entweder den Standard ändern oder mit einem Befehl das gewünschte Format angeben (siehe Post von @em-pie).
Liebe Grüße
Erik
Moin,
Zitat von @newit1:
In der Datenbank steht das Datum im Format "2021-01-22"
Ich würde es nur gerne im Format "22.01.2021" ausgeben.
In der Datenbank steht das Datum im Format "2021-01-22"
Ich würde es nur gerne im Format "22.01.2021" ausgeben.
Da hast Du ein grundsätzliches Verständnisproblem. In der Datenbank steht das Datum nicht in einem bestimmten Format, sondern da steht eine Zahl, die ein Datum repräsentiert. Diese Zahl wird je nach culture von Deiner Datenbank in einem bestimmten Format im Standard ausgegeben. Wenn Du ein anderes Ausgabeformat möchtest, dann musst Du entweder den Standard ändern oder mit einem Befehl das gewünschte Format angeben (siehe Post von @em-pie).
Liebe Grüße
Erik
Aber nur, wenn das Feld vom Typ Date bzw. DateTime ist.
Ist das Feld als Character definiert, gilt das schon nicht mehr, dann muss erst der String in ein Datum "konvertiert" werden.
Aber in dem obigen Beispiel glaube ich nicht, dass das Feld als Character definiert wurde. Und auf dieser (und auch deiner Annahme) beruht auch mein Codeschnipsel oben.
@newit1
Im Hintergrund läuft phpmyadmin
Das ist kein Datenbanksystem sondern ein Frontend, um eine DB zu bedienen.Ich tippe mal, dass dahinter ein MySQL steckt, ggf. noch eine MariaDB...
Moin,
Da hast Du natürlich recht. Aber wer macht sowas? Da müsste ich ja die Gültigkeitsprüfung selbst programmieren.
Mein Kommentar ebenso.
Liebe Grüße
Erik
Zitat von @em-pie:
Da hast Du ein grundsätzliches Verständnisproblem. In der Datenbank steht das Datum nicht in einem bestimmten Format, sondern da steht eine Zahl, die ein Datum repräsentiert. Diese Zahl wird je nach culture von Deiner Datenbank in einem bestimmten Format im Standard ausgegeben. Wenn Du ein anderes Ausgabeformat möchtest, dann musst Du entweder den Standard ändern oder mit einem Befehl das gewünschte Format angeben (siehe Post von @em-pie).
Aber nur, wenn das Feld vom Typ Date bzw. DateTime ist.
Ist das Feld als Character definiert, gilt das schon nicht mehr, dann muss erst der String in ein Datum "konvertiert" werden.
Ist das Feld als Character definiert, gilt das schon nicht mehr, dann muss erst der String in ein Datum "konvertiert" werden.
Da hast Du natürlich recht. Aber wer macht sowas? Da müsste ich ja die Gültigkeitsprüfung selbst programmieren.
Aber in dem obigen Beispiel glaube ich nicht, dass das Feld als Character definiert wurde. Und auf dieser (und auch deiner Annahme) beruht auch mein Codeschnipsel oben.
Mein Kommentar ebenso.
Liebe Grüße
Erik