Heim  >  Fragen und Antworten  >  Hauptteil

Der Titel wird wie folgt umgeschrieben: Die chinesische Übersetzung für die Konvertierung einer Zeichenfolge in ein Datum lautet MYSQL-Funktion STR_TO_DATE

<p>Ich habe dieses Datum innerhalb dieses Datums: <code>STR_TO_DATE('28-AUG-60','%d-%M-%y')</code> Wenn ich es in die Tabelle einfüge, erhalte ich Folgendes: <strong>2060-08-28 00:00:00</strong> Was ich erwarte ist: <strong>1960-08-28 00:00:00</strong> Ich weiß, dass es in MSSQL ein RR-Format gibt, das eine zwei- oder vierstellige Jahreszahl angibt. 00-49 ist das 20. Jahrhundert. Wie mache ich das in MySQL? Als ich mir die Dokumentation ansah, sah ich, dass %Y verwendet werden sollte, aber es funktioniert eigentlich nicht Danke! </p>
P粉270891688P粉270891688434 Tage vor475

Antworte allen(1)Ich werde antworten

  • P粉436410586

    P粉4364105862023-09-03 09:07:18

    如果您知道所有大于某个值的两位数年份,比如'50',应被视为1900年代的年份,而其余的应被视为2000年代的年份,您可以使用CASE表达式来应用不同的日期格式:

    SELECT DATE(STR_TO_DATE(
             date,
             CASE WHEN RIGHT(date, 2) < ? THEN '%d-%M-%Y' ELSE '%d-%M-%y' END 
           )) date
    FROM tablename;

    ?更改为适合您数据的两位数年份(如'50')。

    请参见演示

    Antwort
    0
  • StornierenAntwort