Deutsches Datum in einer Datenbank. Wie vergleichen?

Ravager
Hi

ich habe hier eine Datenbank, in der eine Tabelle die Spalte "date" hat. Allerdings ist da nicht wie erwartet der Timecode gespeichert, sondern das deutsche Datum:
30.11.2007
03.01.2008
und so weiter


außerdem haben immer mehrere Datumsangaben zusammen eine Revisionsnummer.

Ich brauche jetzt also zwei SQL-Abfragen. Einerseits mal eine, die die nächste verfügbare Revisionsnummer sucht, für Pfeiltasten zum Durchschalten:

php:
1:
$sql 'SELECT  MIN(revision)     AS nextRev     FROM dataset      WHERE revision>"'.$rev.'";';


soweit kein Problem.
Genau die selbe Funktionalität brauche ich aber für das mies gespeicherte Datum. Kriegt man das hin?
Er müsste also das Datum in Timestamp umwandeln, dann MIN() suchen und im WHERE-Teil auch wieder das Datum wandeln. Ich lasse dann PHP meine $date-Variable wandeln:
php:
1:
$sql 'SELECT  MIN(SQL_FUNKZION(date))     AS nextDate     FROM dataset      WHERE SQL_FUNKZION(date)>"'.php_funkzion($date).'";';



ich nutze SQLite3. Leider scheinen die Funktionen nur von bekannter Formatierung in beliebige Formatierung wandeln zu können und nicht umgekehrt...
http://www.sqlite.org/lang_datefunc.html


jemand ne Idee?

edit:

die php-Funktion hab ich bereits, aber für SQL bräuchte ich echt hilfe.
php:
1:
2:
3:
4:
5:
6:
function Datum($date)
   { return substr($date64)."-".substr($date32)."-".substr($date02); }

// aufruf mit

strtotime(Datum($date))
Ravager
falls jemand das selbe Problem hat:

ich bin der Sache nur damit beigekommen, dass das deutschsprachige Datum in einen repräsentativen 8stelligen Zahlenwert gewandelt wird, der bei den Größenvergleichen und MAX()/Min() Befehlen das richtige Ergebnis liefert:

php:
1:
$sql 'SELECT  MIN(substr(date, 7, 4)*10000 + substr(date, 4, 2)*100 + substr(date, 1, 2))     AS nextDate     FROM dataset      WHERE (substr(date, 7, 4)*10000 + substr(date, 4, 2)*100 + substr(date, 1, 2)) > '.DatumToNr($date).';';


die entsprechende Datum()-Funktion wurde wieder rausgenommen und für die Formatierungen habe ich diese beiden Funktionen geschrieben

php:
1:
2:
3:
4:
5:
6:
// Formatiert deutsches Datum zu einem Zahlenwert YYYYmmdd
   function DatumToNr($date)
   { return substr($date64)*10000 substr($date32)*100 substr($date02); }
   // kehrt obige Operation um
   function NrToDatum($nr)
   { return ($nr 100).".".(($nr 100)%100).".".(($nr 10000)%10000);}



Ziemliches Chaos mit den Substrings, aber geht - auch ganz ohne Timestamps
Blacksoul
Also Problem gelöst?

Hier ist kaum noch einer, leider Nein
Ravager
Problem war doch nicht gelöst.
Da die Datumsangaben als Integer behandelt werden, kann bei der Rechnerei leicht mal eine führende 0 abgeschnitten werden. z.B. 7 für Juli statt 07, was dann bei Datenbankabfragen mit = nicht mehr konform ist.

Abhilfe schafft es, wenn man statt der Rechnerei subst() Befehle verwendet. So wird der Zahlenwert gleich in einen String konvertiert, ohne das die Nullen verloren gehen:
php:
1:
2:
3:
// kehrt obige Operation um
   function NrToDatum($nr)
   { return (substr($nr62).".".substr($nr42).".".substr($nr04)); }



Die andere Funktion lässt sich "eingabentoleranter" gestalten, so dass auch Datumsangaben ohne Nullen verstanden werden, falls man mit explode() arbeitet:
php:
1:
2:
3:
4:
5:
function DatumToNr($date)
   { 
      $date explode("."$date);
      return $date[2]*10000 $date[1]*100 $date[0];
   }



warum ist hier nichts mehr los? Ich hab mich hier mal vor Jahren angemeldet und jetzt wieder mit Programmieren angefangen...
wo sind die denn alle? Ich mein, falls ich mal irgendwann wirklich Hilfe brauch breites Grinsen
Blacksoul
Liegt daran, dass die meisten ausgeflogen sind und die meisten sich auch andere Foren gesucht haben :/

mfg