Rumah  >  Soal Jawab  >  teks badan

Tajuk ditulis semula sebagai: Terjemahan bahasa Cina untuk menukar rentetan kepada tarikh ialah fungsi MYSQL STR_TO_DATE

<p>Saya mempunyai tarikh ini dalam tarikh ini: <kod>STR_TO_DATE('28-AUG-60','%d-%M-%y')</code> Apabila saya memasukkan ke dalam jadual, apa yang saya dapat ialah: <strong>2060-08-28 00:00:00</strong> Apa yang saya harapkan ialah: <strong>1960-08-28 00:00:00</strong> Saya tahu terdapat format RR dalam MSSQL yang memberikan anda tahun 2 atau 4 digit, 00-49 ialah abad ke-20, bagaimana saya melakukannya dalam MySQL? Apabila saya melihat dokumentasi saya melihat bahawa ia sepatutnya menggunakan %Y tetapi ia sebenarnya tidak berfungsi Terima kasih! </p>
P粉270891688P粉270891688383 hari yang lalu414

membalas semua(1)saya akan balas

  • P粉436410586

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

    Jika anda tahu semua tahun dua digit lebih besar daripada nilai tertentu, seperti '50',应被视为1900年代的年份,而其余的应被视为2000年代的年份,您可以使用CASEUngkapan untuk menggunakan format tarikh yang berbeza:

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

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

    Lihat Demo.

    balas
    0
  • Batalbalas