首頁  >  問答  >  主體

標題重寫為:將字串轉換為日期的中文翻譯是MYSQL函數STR_TO_DATE

<p>我在這個日期中有這個日期: <code>STR_TO_DATE('28-AUG-60','%d-%M-%y')</code> 當我插入表時,我得到的是: <strong>2060-08-28 00:00:00</strong> 我期望的是: <strong>1960-08-28 00:00:00</strong> 我知道在MSSQL中有一個RR格式,它給你2位或4位數字的年份,00-49年代是20世紀,我在MySQL中該怎麼做呢? 當我查看文件時,我發現它應該使用%Y,但實際上不起作用 謝謝! </p>
P粉270891688P粉270891688383 天前415

全部回覆(1)我來回復

  • 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')。

    請參考演示

    回覆
    0
  • 取消回覆