Ich habe eine string
Spalte, die als date
und fungiert, und ich möchte sie als auswählen date
.
Ist es möglich?
Mein Beispieldatenformat wäre; month/day/year
->12/31/2011
Ich habe eine string
Spalte, die als date
und fungiert, und ich möchte sie als auswählen date
.
Ist es möglich?
Mein Beispieldatenformat wäre; month/day/year
->12/31/2011
Antworten:
Wie bei MySQL gesagt wurde , können Sie eine Zeichenfolgenspalte mit Datumstext als Datumsfeld verwenden
SELECT STR_TO_DATE(yourdatefield, '%m/%d/%Y')
FROM yourtable
Sie können diese Datumszeichenfolgen auch in WHERE
Klauseln behandeln. Beispielsweise
SELECT whatever
FROM yourtable
WHERE STR_TO_DATE(yourdatefield, '%m/%d/%Y') > CURDATE() - INTERVAL 7 DAY
Auf diese Weise können Sie alle Arten von Datums- / Zeitlayouts verarbeiten. Bitte beachten Sie die Formatangaben für die DATE_FORMAT()
Funktion , um zu sehen , was Sie in den zweiten Parameter setzen können STR_TO_DATE()
.
STR_TO_DATE('12/31/2011', '%m/%d/%Y')
%d/%m/%Y
so STR_TO_DATE('31/11/1015', '%d/%m/%Y')
, dass die Ausgabe YYYY-MM-DD
als DATE
Datentyp formatiert wird .
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html Auf
der obigen Seite finden Sie weitere Funktionen in MySQL
SELECT STR_TO_DATE(StringColumn, '%d-%b-%y')
FROM table
Verwenden Sie beispielsweise die folgende Abfrage, um eine Ausgabe zu erhalten
SELECT STR_TO_DATE('23-feb-14', '%d-%b-%y') FROM table
Verwenden Sie für das String-Format den folgenden Link
http://dev.mysql.com/doc/refman/5.5/de/date-and-time-functions.html#function_date-format
Hier sind zwei weitere Beispiele.
Um Tag, Monat und Jahr auszugeben, können Sie Folgendes verwenden:
select STR_TO_DATE('14/02/2015', '%d/%m/%Y');
Welches produziert:
2015-02-14
Um auch die Zeit auszugeben, können Sie Folgendes verwenden:
select STR_TO_DATE('14/02/2017 23:38:12', '%d/%m/%Y %T');
Welches produziert:
2017-02-14 23:38:12