Deutsches Datumsformat anlegen

Milo83

Benutzer
Beiträge
18
Hallo,
ich bin gerade dabei die erste Datenbank meines Lebens anzulegen (naja, die zweite die erste habe ich gelöscht).
Nun möchte ich gerne innerhalb meines Create Table Befehls eine Datums-Spalte schaffen und zwar nach dem Format DD.MM.YYYY.
Internationale Datumsformate sind kein Problem. Ich finde auch jede Anleitungen, wie man das mit PHP macht oder mit ausgibt mit select.
Aber wie zum Teufel kann man sowas gleich im Create Befehl Angeben?

Für Anleitung, Hinweise, und Tipps, wäre ich euch wirklich dankbar.
 
Werbung:
Es gibt einen Datentyp für Datum, nutze den. Das Format der Ausgabe machst Du im Select oder in der Applikation. Das ist so, glaub es einfach.

PS.: für Anfänger ist MySQL eine schlechteWahl. Für ernsthafte Anwendungen übrigens auch. Merkst Du noch, glaub mir.
 
Code:
edb=*# create table milo(datum date);
CREATE TABLE
edb=*# insert into milo values (current_date);
INSERT 0 1
edb=*# select datum from milo;
   datum   
-----------
 26-JAN-22
(1 row)

edb=*# set datestyle=iso;
SET
edb=*# select datum from milo;
   datum    
------------
 2022-01-26
(1 row)
edb=*# set datestyle=german;
SET
edb=*# select datum from milo;
   datum    
------------
 26.01.2022
(1 row)
 
Danke Dir. Das Problem ist, ich lasse mir die Datenbank später mit Select * komplett in PHP auslesen und differenziere erst im echo nach Spalten.
D.h. es wäre das beste es im dt. Format anzulegen.
 
Simples Beispiel: Du entwickelst heute eine Anwendung, wo Leute Dinge über sich speichern können, wie z.B. Name, Telefon, Geburtstag. In der Anwendung zeigst Du alle diese Werte an, daher machst Du select *. Soweit klar.

Nächstes Jahr entwickelst Du eine weitere Anwendung, wo Leute auch noch Videos (Katzenvideos gehen immer!) speichern können. Du hast mittlerweile einige hundert Anwender, die auch noch die erste Applikation nutzen. Diese zieht nun bei jedem select * from meine_user einige hundert mal jeweils ca. 10GB Katzenvideos über eine möglicherweise langsamme Leitung. Macht plötzlich keinen Spaß.

Anderes Problem: du machst in der Anwedung einen JOIN über 2 Tabellen. Eine Tabelle enthält Feld 'foo'. Später fügst Du der zweiten Tabelle auch ein Feld 'foo' zu. Plötzlich hast Du im Result 2 Felder 'foo' und die Applikation verwendet das falsche.
 
Kurz gesagt ist es einer Seits schlechter Stil und anderer Seits kann es zu unerwartetem Verhalten führen und das nicht erst in 10 Jahren sondern direkt morgen wenn du beschließt das an der Tabelle eine Kleinigkeit geändert werden muss oder eine Spalte fehlt. Plötzlich ist sogar die Reihenfolge der Spalten relevant.

Und ++ auch für DATE als Datentyp, alles andere ist Murks. Simpelste Abfragen wie mit BETWEEN oder ORDER BY machen Blödsinn.
 
Werbung:
Alternativ direkt im Select:
 
Zurück
Oben