Ich versuche, die Analyse order_date
列,并且列具有多種日期格式,我想將所有這些日期轉(zhuǎn)換為相同的格式,這將使分析 order_date
einfacher zu machen.
Ich versuche zu analysieren order_date
但是此列有多種日期格式 2019/07/15
和 1/13/2014
Allerdings, wenn eine Abfrage zum Konvertieren von Datumsangaben in verschiedenen Formaten in ein Format verwendet wird yyyy/mm/dd
.
select date_format(order_date, '%y/%m/%d'),orderid from superstore;
Es zeigt einen Nullwert wie diesen an.
Ich habe auch versucht, ?CAST“ zu verwenden, aber es zeigt jeden Wert als leer an.
選擇 order_date 像 '%Y' 時(shí)的情況,然后 date_format(order_date, '%Y/%m/%d') else null end as newdate from superstore;
date_format 函數(shù)用于格式化您應(yīng)該使用的日期數(shù)據(jù)類(lèi)型 https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_str-to-date 任何 null str_to_date 返回的值要么失敗,要么以空值開(kāi)始。您需要檢查這些并適當(dāng)調(diào)整 str_to_date 參數(shù)。但有一個(gè)問(wèn)題是 20/2/20 y/m/d 或 d/m/y(例如),如何區(qū)分月份和日期都 例如
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一個(gè)>
請(qǐng)注意,在任何情況下我都無(wú)法識(shí)別月份和日期,有時(shí)甚至是年份..