2016-07-30 118 views
1

在我的訂單表,我有VARCHAR類型「DELIVERY_DATE」字段和所有值是這樣的: 「d/M /爲H Y:M」MySQL的字符串轉換爲DATETIME

哪有我將此字段和值轉換爲有效的日期時間Ymd H:i:s?

+0

您應該必須爲日期時間爲您的字段提供數據類型。 而在此之前,您可以將所有現有日期轉換爲有效的日期格式「Y-m-d H:i:s」 –

+0

好的,我如何處理STR_TO_DATE的轉換? – AniZ

+0

DATE_FORMAT(STR_TO_DATE(delivery_date,'%d /%m /%y HH:MM'),'%Y-%m-%d HH:MM:SS') –

回答

2
SELECT STR_TO_DATE(delivery_date, '%d/%m/%Y at %H:%i') as date_value 
FROM order_table 

format here

0

您可以使用MySQL的STR_TO_DATE功能,或者您可以使用PHP的strtotime功能可按。

strtotime(date('Y-m-d H:i:s')); 
0

因爲你沒有在列秒鐘你會得到00作爲第二一如既往。

SELECT 
DATE_FORMAT(STR_TO_DATE(delivery_date, '%d/%m/%y at %H:%i'),'%Y-%m-%d %H:%i:%s') as dt 
FROM your_table; 

注:

但我建議你通過更新查詢您的所有字符串值,以有效timestamp轉換。稍後將數據類型更改爲timestamp

這些都是要遵循以下步驟:

UPDATE your_table SET delivery_date = 
    DATE_FORMAT(STR_TO_DATE(delivery_date, '%d/%m/%y at %H:%i'),'%Y-%m-%d %H:%i:%s'); 

ALTER TABLE your_table MODIFY delivery_date timestamp;

1

更新通過以下查詢現有的日期。

update table_name set delivery_date = DATE_FORMAT(STR_TO_DATE(delivery_date, '%d/%m/%y HH:MM'), '%Y-%m-%d HH:MM:SS'); 

在上述查詢修改了所有日期之後,您可以將數據類型更改爲date_time,以用於delivery_date。並相應地更改您的代碼以便插入新記錄,更新現有記錄和相關功能,因此我們正在更改日期格式。

+0

它的工作原理,謝謝:-) – AniZ