newit1
Goto Top

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:

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!

Content-Key: 643470

Url: https://administrator.de/contentid/643470

Printed on: April 26, 2024 at 07:04 o'clock

Member: em-pie
em-pie Jan 22, 2021 updated at 13:43:01 (UTC)
Goto Top
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:

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
Member: michi1983
michi1983 Jan 22, 2021 at 13:52:32 (UTC)
Goto Top
Hi,

ich glaube er möchte einfach alle Einträge haben, die dem Datumsformat entsprechen welches er angibt?
Vielleicht irre ich aber auch.

Jedenfalls fällt mir noch auf, dass im 2. Statement hinter der Jahreszahl %y. ein Punkt ist.

Gruß
Michi
Member: mshm17
mshm17 Jan 22, 2021 at 14:11:02 (UTC)
Goto Top
Ohne weiteren Infos schließe ich mich @michi1983 an.

Im 2. Statement hinter der Jahreszahl ist noch ein "."

Gruß
Member: newit1
newit1 Jan 22, 2021 at 14:27:38 (UTC)
Goto Top
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....
Member: akretschmer
akretschmer Jan 22, 2021 at 14:31:34 (UTC)
Goto Top
Zitat von @newit1:


Entsprechend ist der Befehl wahrscheinlich sogar teilweise falsch zusammen gegoogelt....

nicht nur teilweise.
Member: em-pie
Solution em-pie Jan 22, 2021 updated at 14:39:09 (UTC)
Goto Top
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....

Gut, dass du keine Autos baust face-big-smile

Dann hilft dir:
 select DATE_FORMAT(gebdatum, '%d.%m.%Y') as Birthdate, NAME from myTable  
https://www.w3schools.com/sql/func_mysql_date_format.asp


Mit Where schränkst du deine Datensätze ein, z.B. wenn du wissen willst, wer in 1995 geboren ist...
Member: erikro
Solution erikro Jan 22, 2021 at 14:51:23 (UTC)
Goto Top
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.

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
Member: em-pie
em-pie Jan 22, 2021 updated at 17:36:46 (UTC)
Goto Top
Zitat von @erikro:

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.

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...
Member: erikro
erikro Jan 25, 2021 at 18:15:40 (UTC)
Goto Top
Moin,

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.

Da hast Du natürlich recht. Aber wer macht sowas? face-wink Da müsste ich ja die Gültigkeitsprüfung selbst programmieren. face-wink

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