preko
Erfahrenes Mitglied
Hallo,
ich habe eine MySQL Abfrage, die im Prinzip eine Ausgabe generieren soll, die zwischen zwei Daten liegen soll. Dabei verarbeite ich zwei Formularangaben (Start- und Enddatum).
Start- (01.01.1960) und Enddatum (31.12.1970) liegen in der Datenbank im Format: TT.MM.JJJJ vor, die ich bei der MySQL Abfrage in den entsprechenden Timestamp umwandle und mit dem Timestamp des Geburtstages (Spalte: Geb.-Dat.) vergleiche.
Zur ergänzenden Info: die Spalte Zuweisung ist das Datum, wann der Kunde erfasst wurde.
So sieht mein PHP Code aus:
So sieht dann die SQL Abfrage aus:
Trotzdem bekomme ich z. B. folgende Ausgabe:
Startdatum : 01.01.1960 (-315622800),
Enddatum : 31.12.1970 (31446000)
Geburtsdatum: 27.03.1955 (-466045200) oder
Geburtsdatum: 30.06.1958 (-363142800)
Hat jemand mal `ne Idee, was hier falsch laufen könnte? Übersehe ich etwas?
Beste Grüße!
ich habe eine MySQL Abfrage, die im Prinzip eine Ausgabe generieren soll, die zwischen zwei Daten liegen soll. Dabei verarbeite ich zwei Formularangaben (Start- und Enddatum).
Start- (01.01.1960) und Enddatum (31.12.1970) liegen in der Datenbank im Format: TT.MM.JJJJ vor, die ich bei der MySQL Abfrage in den entsprechenden Timestamp umwandle und mit dem Timestamp des Geburtstages (Spalte: Geb.-Dat.) vergleiche.
Zur ergänzenden Info: die Spalte Zuweisung ist das Datum, wann der Kunde erfasst wurde.
So sieht mein PHP Code aus:
PHP:
$sql_query = "SELECT"."\n";
$sql_query .= " *,"."\n";
$sql_query .= " UNIX_TIMESTAMP(STR_TO_DATE((CONCAT(`Geb.-Dat.`, ', 00:00')), '%d.%m.%Y, %H:%i')) AS UnixGeburt,"."\n";
$sql_query .= " UNIX_TIMESTAMP(STR_TO_DATE((CONCAT(`Zuweisung`, ', 00:00')), '%d.%m.%Y, %H:%i')) AS UnixZuweisung"."\n";
$sql_query .= "FROM"."\n";
$sql_query .= " `kunden`"."\n";
$sql_query .= "WHERE"."\n";
$sql_query .= " 'UnixZuweisung' >= '1167606000'"."\n\n"; // Bezugsdatum/Timestamp ist der 01.01.2007
$sql_query .= "AND UNIX_TIMESTAMP(STR_TO_DATE((CONCAT(`Geb.-Dat.`, ', 00:00')), '%d.%m.%Y, %H:%i')) >= ".$jahrgangVon." "."\n";
$sql_query .= "AND UNIX_TIMESTAMP(STR_TO_DATE((CONCAT(`Geb.-Dat.`, ', 00:00')), '%d.%m.%Y, %H:%i')) <= ".$jahrgangBis." "."\n";
$sql_query .= "\n"."ORDER BY"."\n";
$sql_query .= " `UnixGeburt` DESC "."\n";
So sieht dann die SQL Abfrage aus:
SQL:
SELECT
*,
UNIX_TIMESTAMP(STR_TO_DATE((CONCAT(`Geb.-Dat.`, ', 00:00')), '%d.%m.%Y, %H:%i')) AS UnixGeburt,
UNIX_TIMESTAMP(STR_TO_DATE((CONCAT(`Zuweisung`, ', 00:00')), '%d.%m.%Y, %H:%i')) AS UnixZuweisung
FROM
`kunden`
WHERE
'UnixZuweisung' >= '1167606000'
AND UNIX_TIMESTAMP(STR_TO_DATE((CONCAT(`Geb.-Dat.`, ', 00:00')), '%d.%m.%Y, %H:%i')) >= -315622800
AND UNIX_TIMESTAMP(STR_TO_DATE((CONCAT(`Geb.-Dat.`, ', 00:00')), '%d.%m.%Y, %H:%i')) <= 31446000
ORDER BY
`UnixGeburt` DESC
Trotzdem bekomme ich z. B. folgende Ausgabe:
Startdatum : 01.01.1960 (-315622800),
Enddatum : 31.12.1970 (31446000)
Geburtsdatum: 27.03.1955 (-466045200) oder
Geburtsdatum: 30.06.1958 (-363142800)
Hat jemand mal `ne Idee, was hier falsch laufen könnte? Übersehe ich etwas?
Beste Grüße!