Rumah > Soal Jawab > teks badan
Saya cuba membuat analisis order_date
列,并且列具有多种日期格式,我想将所有这些日期转换为相同的格式,这将使分析 order_date
lebih mudah.
Saya cuba menganalisis order_date
但是此列有多种日期格式 2019/07/15
和 1/13/2014
Walau bagaimanapun, apabila menggunakan pertanyaan untuk menukar tarikh dalam format berbeza kepada satu format yyyy/mm/dd
.
select date_format(order_date, '%y/%m/%d'),orderid from superstore;
Ia menunjukkan nilai nol seperti ini.
Saya juga cuba menggunakan "CAST" tetapi ia menunjukkan setiap nilai sebagai kosong.
选择 order_date 像 '%Y' 时的情况,然后 date_format(order_date, '%Y/%m/%d') else null end as newdate from superstore;
P粉3229187292024-04-07 10:22:18
Fungsi format_tarikh digunakan untuk memformat jenis data tarikh yang anda patut gunakan https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_str-to-date Mana-mana Nilai yang dikembalikan oleh null str_to_date sama ada gagal atau bermula dengan nilai null. Anda perlu menyemak ini dan melaraskan parameter str_to_date dengan sewajarnya. Tetapi satu soalan ialah 20/2/20 y/m/d atau d/m/y (sebagai contoh), bagaimana untuk membezakan kes di mana kedua-dua bulan dan hari adalah <=12? <=12 的情况?
Sebagai contoh
drop table if exists t; create table t (dt varchar(10)); insert into t values ('1/1/2020'),('2020/1/12'),('12/12/12'),(null),('13-14-15'); select dt, case when length(substring_index(dt,'/',-1)) = 4 then str_to_date(dt,'%d/%m/%Y') when length(substring_index(dt,'/',1)) = 4 then str_to_date(dt,'%Y/%m/%d') when length(substring_index(dt,'/',1)) = 2 then str_to_date(dt,'%y/%m/%d') else str_to_date(dt,'%y/%m/%d') end dateformatted from t;
https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=553219f33ad9e9a4404fc4c0cb65 71c9一个>
Sila ambil perhatian bahawa dalam apa jua keadaan saya tidak dapat mengenal pasti bulan dan hari dan kadang-kadang juga tahun..