MySQL: Datum für TIMESTAMP-Funktion vorformatieren
Chris
- datenbank
0 Chris0 Thomas Meinike
Hallo!
Ich habe eine Spalte mit Datumsangaben im deutschen Format: DD.MM.YYYY
Ich möchte mit Hilfe der Timestamp-Funktion bestimmte Datensätze, die in einem definierten Zeitraum liegen, filtern.
Wie kann ich die Datumsspalte für die Timestamp-Funktion vorformatieren? Ich dachte so:
WHERE UNIX_TIMESTAMP(TO_DATE(shop_bestellungen.be_datum,YYYYMMDD)) BETWEEN UNIX_TIMESTAMP(20021128) AND UNIX_TIMESTAMP(20021231)
Das geht aber nicht. :(
Weiß jemand Rat?
Wie funktioniert dieses Statement mit einem deutschen Datum?
SELECT DATE_FORMAT(datum, '%Y%m%d') FROM tabelle
Die Spalte "datum" enthält ein Datum im deutschen Format. Es wird aber automatisch von einem englischen Format ausgegangen...
Hallo,
Wie funktioniert dieses Statement mit einem deutschen Datum?
SELECT DATE_FORMAT(datum, '%Y%m%d') FROM tabelle
Die Spalte "datum" enthält ein Datum im deutschen Format. Es wird aber automatisch von einem englischen Format ausgegangen...
Der jeweilige Formatstring kann bliebig angepasst werden, auch mit Trennzeichen:
SELECT DATE_FORMAT(datum, '%d.%m.%Y') FROM tabelle
MfG, Thomas
SELECT DATE_FORMAT(datum, '%d.%m.%Y') FROM tabelle
Ja klar. Nur das Problem ist, dass das deutsche Datum im englischen Format umgewandelt wird...
Hallo,
Ja klar. Nur das Problem ist, dass das deutsche Datum im englischen Format umgewandelt wird...
Wenn Dein Datum so gespeicher ist:
30112002, dann erzeugt diese Abfrage ein Datum in der Form 2002-11-30:
SELECT CONCAT(SUBSTRING(datum,5,4),"-",SUBSTRING(datum,3,2),"-",SUBSTRING(datum,1,2)) FROM tabelle
MfG, Thomas
Hallo,
Ja klar. Nur das Problem ist, dass das deutsche Datum im englischen Format umgewandelt wird...
Wenn Dein Datum so gespeicher ist:
30112002, dann erzeugt diese Abfrage ein Datum in der Form 2002-11-30:SELECT CONCAT(SUBSTRING(datum,5,4),"-",SUBSTRING(datum,3,2),"-",SUBSTRING(datum,1,2)) FROM tabelle
MfG, Thomas
KLASSE!!! Vielen Dank!!!!!
Hallo,
Wie kann ich die Datumsspalte für die Timestamp-Funktion vorformatieren?
Uebergib das Datum an UNIX_TIMESTAMP in dieser Form als Zeichenkette:
UNIX_TIMESTAMP("2002-11-30")
Zum Testen:
mysql> SELECT UNIX_TIMESTAMP("2002-11-30");
+------------------------------+
| UNIX_TIMESTAMP("2002-11-30") |
+------------------------------+
| 1038610800 |
+------------------------------+
1 row in set (0.22 sec)
MfG, Thomas