SQL MySQL Datum Formatieren -- Monat ohne Null

S

Sasku

Gast
Hey Leute,

in meinem aktuellen Projekt mit MYSQL verwende ich Dates ... jetzt wollte ich fragen, ob es möglich ist das Datum beim Monat ohne Null vorne weg ( also bei den Monaten 1-9 ) zu formatieren ... ?

Momentan sieht es ja so aus:
Code:
DATE_FORMAT(g.DATUM, '%d.%m.%Y')

danke schon mal!
 
Formatierung ist Aufgabe deines Ausgabemediums, nicht der Datenbank.
 
Ich weiß ja nicht wo du das ausgeben möchtest, aber wie Daaron schon sagte, mach einfach einen SELECT in der SQL Datenbank und formatiere es bei der Ausgabe entsprechend um. Wenn du dieses Datum jetzt noch einmal irgendwo brauchst, muss du vielleicht einen weiteren SELECT schreiben weil die Formatierung dann wieder nicht passt. Oder was auch immer ;)

Gruß, Domi
 
Sasku schrieb:
Naja aber es sollte sowas doch zur Verfügung stellen, dass man das formatieren kann .. ansonsten wäre das nur unnötiger aufwand, den man aber seitens MySql innerhalb von n paar Minuten wieder lösen kann ^^

Kleines Beispiel:
Du hast 2 Sprachen in deiner Webseite: Englisch und Deutsch. Beide nutzen für Frontend-Ausgaben (z.B. für News) das jeweilige Datumsformat, also für uns d.m.Y, für Englisch m.d.Y.

Was ist jetzt performanter und flexibler:
- Du schreibst 2 verschieden Queries, in Abhängigkeit der Sprache, nur damit dir die Datenbank die Formatierung abnimmt. 2 Queries => 2 verschiedene Cache-Einträge
- Du formatierst in der Sprache, die am Ende für den Output zuständig ist (also z.B. PHP). 1 Query => 1x Cache => 2 verschieden Ausgaben

Was passiert, wenn du jetzt noch ein Datumsformat mehr brauchst, z.B. "Y-m-d H:i" für die Ausgabe des datetime-Attributes eines <time>-Elementes?
 
ja klar ist das perfomanter ... aber man kann diese Funktion ja zur Verfügung stellen, für diejenigen die für nur eine Sprache schreiben ;) ( wie ich jetzt .. bei diesem Programm ) . ^^

Und sowas kommt nunmal bei einfachen kleinen Tools sehr häufig vor und da ist es dann perfomanter wenn man das Format schon zur Verfügung gestellt bekommen hat, von der Datenbank.

Bei sowas kommt es immer darauf an, wie man es braucht ... ich persönlich brauche meistens nur einsprachig, da ich nur kleine Tools momentan daheim schreibe.. und da wäre es nunmal viel zu viel aufwand wenn man dafür extra n haufen ( also im vergleich zu dem einen Buchstaben den man ändern muss ) Code schreiben muss.
 
Hi,

nein, das ist nicht "performanter" - oder hast du Benchmarks, die da eine verbesserte Performance feststellen?

Umgekehrt ist es aber eben so wie Daaron sagt: es ist weit unflexibler, das Format auf DB Ebene festzulegen.

und da wäre es nunmal viel zu viel aufwand wenn man dafür extra n haufen ( also im vergleich zu dem einen Buchstaben den man ändern muss ) Code schreiben muss.

Absolut nicht, nein.

VG,
Mad
 
Sasku schrieb:
Und sowas kommt nunmal bei einfachen kleinen Tools sehr häufig vor und da ist es dann perfomanter wenn man das Format schon zur Verfügung gestellt bekommen hat, von der Datenbank.
2 verschiedene Queries sind IMMER langsamer bzw. ineffizienter, als aus demselben Query einfach genau die Daten zu extrahieren, die man gerade braucht.

und da wäre es nunmal viel zu viel aufwand wenn man dafür extra n haufen ( also im vergleich zu dem einen Buchstaben den man ändern muss ) Code schreiben muss.

Nö. Mal ein PHP-Beispiel, das so tatsächlich funktionieren müsste...
PHP:
$objDate = new DateTime($deinSqlResult); 
echo $objDate->format("d.m.Y");

Wie viel kürzer willst du es noch?
Oder wie wäre es damit?

PHP:
$timestamp = strtotime( $deinSqlResult );
echo date( 'd.m.Y', $timestamp );
 
Ich hab ein Stück Lesbarkeit erhalten wollen...
Übrigens müsste eigentlich auch folgendes gehen:
PHP:
echo (string)(new DateTime($date));
Weißt nur eben nicht, was für ne Formatierung dabei raus kommt *G*
 
ich musste allerdings beim anderen nur einen Buchstaben ändern .. was is jetzt kürzer?

einfach statt %m: %c ...

und es geht mir hier nicht um 2 querys ... Ich weis zu 100 % dass dieses Tool nur eine abfrage braucht ... wenn ich dann wieder größere Projekte mache ist das natürlich verständlich, dass ich es über das Programm und nicht über die Datenbank mache.

Aber man muss immer unterscheiden können ob ich jetzt ein kleines Tool schreibe, welches nur bestimmte Sachen anzeigen soll... oder ein großes Programm, bei dem man auf jeden Bit achten sollte ... bei kleinen Tools, bei denen es auch sicher ist dass sie nur diese eine Abfrage, im deutschen Format, braucht , ist es aber meiner Meinung nach einfacher nur einen Buchstaben zu wechseln als zwei oder drei zeilen Code ( je nach Programmiersprache ) ... und wir wissen doch dass wir programmierer faul sind, somit is es besser für mich, nur einen Buchstaben zu ändern, als ganze zeilen zu schreiben.
 
das siehst du falsch.. ich würde sogar für ein kleines tool kein raw sql verwenden.. kaum was mach den code hässlicher als ellenlange strings.. deren inhalt auchnoch dafür sogen kann, dass fehler enstehen..
 
Hi,

und es geht mir hier nicht um 2 querys ... Ich weis zu 100 % dass dieses Tool nur eine abfrage braucht ...

Aber man muss immer unterscheiden können ob ich jetzt ein kleines Tool schreibe, welches nur bestimmte Sachen anzeigen soll...

Nach deiner Logik muss ich mich auch nicht anschnallen, wenn ich nur kurz Brötchen holen fahre, oder? Es geht hier ums Prinzip, um den Standard, um ein grundsätzliches Vorgehen. Das ändert man nicht einfach so, nur weil das Tool klein ist. Weniger Aufwand ist es nicht, performanter ist es nicht, negative Aspekte gibt es aber durchaus - es gibt keinen vernünftigen Grund, es anders zu machen als hier schon mehrfach geschrieben!

und wir wissen doch dass wir programmierer faul sind, somit is es besser für mich, nur einen Buchstaben zu ändern, als ganze zeilen zu schreiben.

Wenn das deine Definition von "Programmierer" ist dann stelle uns bitte nicht auf deine Stufe! Ich schreibe in jedem Fall sauberen Code, unabhängig vom Umfang des Tools - eine Zeile mehr bringt mich sicherlich nicht um, zumal sie dir im Netz auch noch vorgekaut wird und du nur kopieren musst.

VG,
Mad
 
Du musst doch eh eine Ausgabefunktion schreiben, in der du die Werte der Datenbank (Array, assoziatives Array, Objekt) in einen menschenlesbaren Kontext bringst.
 
Zurück
Oben