2017-08-18 53 views
0

我有我的SQL表中的列CREATE_DATE,數據類型爲VARCHAR (225)。我的問題是,在該列的值是在不同的日期格式請檢查連接的圖像 enter image description here轉換不同的字符串日期,到一個單一的日期格式在MySQL

我想與constant_date_format創建另一列使用創建_DATE列,有沒有辦法?

我曾嘗試與MySQL STR_TO_DATE功能:

STR_TO_DATE(create_date, '%m/%d/%Y') 

這是工作,如果CREATE_DATE列具有相同的日期格式。

回答

2

您可以情況下用正則表達式

選擇 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

https://www.guru99.com/regular-expressions.html

1

如果您的數據與示例中的數據類似,則無法這樣做。考慮如果你有一排create_date與值8.1.2017:什麼是constant_date_format爲什麼?這是1/8/20178/1/2017

您至少已在create_date中定義固定的日/月訂單。然後,您可以使用REPLACE上的create_date以確保始終使用slahses或dots,最後STR_TO_DATE轉換爲日期。例如,如果你決定CREATE_DATE有一天前一個月,你可以這樣做:

STR_TO_DATE(REPLACE(create_date, '.', '/'), '%m/%d/%Y') 
相關問題