php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.04.2005, 11:54  
Gast
 
Beiträge: n/a
Standard [Erledigt] datumswerte dd.mm.yy "menschlich" sortieren

wie kann ich datumswerte in der form dd.mm.yy in mysql "menschlich" sortieren, wie es zum beispiel ms excel kann?

aufsteigend
31.01.2005
01.02.2005

wenn die werte in der form yyyy-mm-dd vorliegen müssen, wie bekomme ich sie am einfachtsten von dd.mm.yy in dieses format?

wenn das datumsfeld den typ "date" (yyyy-mm-dd) hat, werden beim importieren, die datumswerte aus der form dd.mm.yy verändert übernommen.

also gibt es ein datumstyp bei dem menschlich sortiert wird?
oder wenn nicht, wie und wo konvertiere ich am besten?
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 07.04.2005, 12:07  
Gast
 
Beiträge: n/a
Standard Re: datumswerte dd.mm.yy "menschlich" sortieren

Zitat:
Zitat von cs
wenn die werte in der form yyyy-mm-dd vorliegen müssen, wie bekomme ich sie am einfachtsten von dd.mm.yy in dieses format?
a. in dem Du dafür sorgst, daß Datum u/o Uhrzeit im korrekten Format vorliegen, wenn INSERT INTO oder UPDATE stattfindet.

b. einfach ist es nicht, nachträglich Deine falschen Einträge in ein korrektes DATE(TIME) umzuwandeln.

btw: was mich ernsthaft wundert, daß es auch nach dem "2000 Problem" trotzdem wieder ein paar Kurzsichtige gibt, die meinen, eine 2-stellige Jahreszahl reiche aus. Und das auch noch in den Jahren, zwischen (20)00 und (20)09, wo schon mal ganz gern die Vornull flöten geht.
  Mit Zitat antworten
Alt 07.04.2005, 12:28  
Gast
 
Beiträge: n/a
Standard

hallo meikel, schön so schnell eine antwort bekommen zu können, allerdings vermisse ich die lösungsorientierung in deiner antwort!

zu a)

das format liegt nunmal in der form dd.mm.yy vor. das ist die (nicht meine!) vorgabe. ein vorschlag zur konvertierung vermisse ich in deiner antwort. auf meine frage gehst du überhaupt nicht ein. dein hinweis zum "sorge tragen" ist keine antwort.

zu b)
ein "nachträglich" hat sich erledigt. die falschen werte werden einfach gelöschtt. das original liegt selbstverständlich weiterhin vor.

zu btw)

ich weiß nicht, wen du mit "Kurzsichtige" meinst. lösungsorientiert ist die bemerkung jedenfalls nicht. die "Kurzsichtige" deutsche bank bietet nunmal beim online banking nur dieses format an. das ist die vorgabe.

wo ist deine lösung? problem klar? der csv-download soll korrekt sortierbar in die db!
  Mit Zitat antworten
Alt 07.04.2005, 12:45  
Gast
 
Beiträge: n/a
Standard

Bin nun nicht DER SQL-Freak aber hast du dir schonmal DATE_FORMAT() angesehen? Wenn man da noch nen ORDER BY rein packt sollte im Grunde der Krams machbar sein.
  Mit Zitat antworten
Alt 07.04.2005, 12:56  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

D.h. der Input kommt aus einer CSV-Datei, also aus PHP und nicht direkt aus der DB. Wenn ich davon ausgehe, dass alle Jahr angaben neuer sind, als 2000, dann folgendermassen:
PHP-Code:
<?php
list($tag$monat$jahr) = explode($csv_datum);
$sql INSERT INTO tabelle (datum)
             
VALUES(CONCAT($jahr 2000' -'$monat'-'$tag));
mysql_query($sql) or die(mysql_error());
?>
[EDIT]Falls du die Daten schon in der DB hast, gehts einfacher:
PHP-Code:
<?php
$sql 
UPDATE tabelle
             SET datum 
CONCAT('20'substr(altdat72), '-'substr(altdat42), '-'substr(altdat12)); 
mysql_query($sql) or die(mysql_error());
?>
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 07.04.2005, 13:02  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von cs
die "Kurzsichtige" deutsche bank bietet nunmal beim online banking nur dieses format an.
Gut zu wissen, welche Deppen in der Deutschen Bank arbeiten.
  Mit Zitat antworten
Alt 07.04.2005, 13:04  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von past
Bin nun nicht DER SQL-Freak aber hast du dir schonmal DATE_FORMAT() angesehen? Wenn man da noch nen ORDER BY rein packt sollte im Grunde der Krams machbar sein.
Ungeeignet, weil das Datum im falschen Format vorliegt.
  Mit Zitat antworten
Alt 07.04.2005, 13:44  
Gast
 
Beiträge: n/a
Standard

hallo lazydog, danke für den vorschlag zur konvertierung.

>>>was mich aber am allermeisten interessiert ist, ob mysql ohne konvertierung dd.mm.yy >menschlich< sortieren kann???<<<

denn das hätte den großen vorteil, bei der ausgabe wieder (ohne rückkonvertierung) das dd.mm.yy format zu haben.

ms-excel kann zum beispiel dd.mm.yy >menschlich< sortieren (und auch nach yyyy-mm-dd konvertieren).
  Mit Zitat antworten
Alt 07.04.2005, 14:58  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.150
Guradia befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von cs
>>>was mich aber am allermeisten interessiert ist, ob mysql ohne konvertierung dd.mm.yy >menschlich< sortieren kann???<<<
Köntnest du dieses "menschlich" mal wegwerfen ... das nervt ;P

Und ja .. kann es .. tut es um genau zu sein.
Es ist nur deine falche Annahme, dass ein beliebige Zahlenfolge für MySQL ein Datum darstellen sollte

Zitat:
Zitat von cs
denn das hätte den großen vorteil, bei der ausgabe wieder (ohne rückkonvertierung) das dd.mm.yy format zu haben.
DATE_FORMAT() .. tut nicht weh und eine "Konvertierung" ist das eigentlich nicht ...

Zitat:
Zitat von cs
ms-excel kann zum beispiel dd.mm.yy >menschlich< sortieren (und auch nach yyyy-mm-dd konvertieren).
Weil es intern als Datum behandelt wird, was du MySQL ja nicht zugestehen willst ...
Guradia ist offline   Mit Zitat antworten
Alt 07.04.2005, 15:57  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Natürlich könnte man auch diese Schrottformat sortieren. Aber dabei werde ich dir nicht helfen, weil ich das für Schwachsinn halte. In Excel funktioniert das auch nur, weil das Datum intern als Zahl abgespeichert wird, und das was du siehst auch nur eine Konvertierung davon ist.
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Array sortieren mit regex Lupi PHP Tipps 2008 3 21.07.2008 15:17
[gelöst] Zahlen sortieren mit Varchar moose Datenbanken 8 21.07.2008 13:53
Array nach mehreren Feldern sortieren Marcel1 PHP Tipps 2008 4 04.06.2008 05:09
Nach Datum sortieren zoro Datenbanken 9 28.11.2007 14:00
Array nach bestimmter Spalte sortieren GELight PHP Tipps 2006 4 19.08.2006 23:42
DECIMAL lässt sich nicht mit ORDER BY sortieren buggybugga Datenbanken 4 07.07.2006 15:43
array sortieren lord nacon PHP Tipps 2005-2 2 14.08.2005 08:00
Problem beim Sortieren PHP Tipps 2005-2 5 29.06.2005 07:00
Termine sortieren Tschuu PHP Tipps 2005 12 18.05.2005 21:15
Array mit Gruppen: Wie Sortieren PHP Tipps 2005 2 29.01.2005 15:15
5 assosiative arrays gleichzeitig sortieren PHP Tipps 2004-2 2 13.12.2004 14:07
Sortieren einer Tabelle woods Datenbanken 4 02.12.2004 20:02
[Erledigt] Alphabetisch sortieren PHP Tipps 2004 17 15.07.2004 23:15
Inhalt einer datei Sortieren ???? PHP Tipps 2004 12 21.06.2004 22:56
Sortieren nach Timestamp Datenbanken 5 01.06.2004 16:04

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
regex datum nur dd.mm.yy nicht dd.mm.yyyy, regex datum dd.mm.yyyy php, mm/yy, ddmmyy, datum auf deutsch sortieren php, regex datum yyyy-mm-dd, regex datum dd.mm.yy, sql server 2008 datumswerte im format dd.mm.yyyy in tabelle importiern, excel warum wird datum mit falschen werten übernommen, datumsformat ddmmyy importieren, excel deutsch datum intern abgespeichert, dd-mm-jj sortieren, html form dd mm yy, excel datum mm dd ohne jahr, excel jahr dezimal in jj.mm.dd umwnadeln, php datum yy.mm.dd sortieren, mysql sort datum dd.mm.yyyy, sql datum deutsch format sortieren, speicherdatum format(date, \dd.mm.yy\ uhrzeit, excel datumsformat dd.mm.yyyy sortieren

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:14 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.