我有我的SQL表中的列CREATE_DATE,數據類型爲VARCHAR (225)。我的問題是,在該列的值是在不同的日期格式請檢查連接的圖像 轉換不同的字符串日期,到一個單一的日期格式在MySQL
我想與constant_date_format創建另一列使用創建_DATE列,有沒有辦法?
我曾嘗試與MySQL STR_TO_DATE功能:
STR_TO_DATE(create_date, '%m/%d/%Y')
這是工作,如果CREATE_DATE列具有相同的日期格式。
我有我的SQL表中的列CREATE_DATE,數據類型爲VARCHAR (225)。我的問題是,在該列的值是在不同的日期格式請檢查連接的圖像 轉換不同的字符串日期,到一個單一的日期格式在MySQL
我想與constant_date_format創建另一列使用創建_DATE列,有沒有辦法?
我曾嘗試與MySQL STR_TO_DATE功能:
STR_TO_DATE(create_date, '%m/%d/%Y')
這是工作,如果CREATE_DATE列具有相同的日期格式。
您可以情況下用正則表達式
選擇 CASE WHEN CREATE_DATE REGEXP [0-9] [0-9] - [0-9] [0-9] - [0-9] [0-9] [0-9] [0-9] THEN STR_TO_DATE(create_date,'%m-%d-% Y') WHEN create_date REGEXP 格式 THEN STR_TO_DATE(create_date,'%m /%d /%Y') ELSE create_date END AS create_date FROM TABLE_NAME
如果您的數據與示例中的數據類似,則無法這樣做。考慮如果你有一排create_date與值8.1.2017
:什麼是constant_date_format爲什麼?這是1/8/2017
或8/1/2017
?
您至少已在create_date中定義固定的日/月訂單。然後,您可以使用REPLACE
上的create_date以確保始終使用slahses或dots,最後STR_TO_DATE
轉換爲日期。例如,如果你決定CREATE_DATE有一天前一個月,你可以這樣做:
STR_TO_DATE(REPLACE(create_date, '.', '/'), '%m/%d/%Y')