在我的訂單表,我有VARCHAR類型「DELIVERY_DATE」字段和所有值是這樣的: 「d/M /爲H Y:M」MySQL的字符串轉換爲DATETIME
哪有我將此字段和值轉換爲有效的日期時間Ymd H:i:s?
在我的訂單表,我有VARCHAR類型「DELIVERY_DATE」字段和所有值是這樣的: 「d/M /爲H Y:M」MySQL的字符串轉換爲DATETIME
哪有我將此字段和值轉換爲有效的日期時間Ymd H:i:s?
SELECT STR_TO_DATE(delivery_date, '%d/%m/%Y at %H:%i') as date_value
FROM order_table
您可以使用MySQL的STR_TO_DATE
功能,或者您可以使用PHP的strtotime
功能可按。
strtotime(date('Y-m-d H:i:s'));
因爲你沒有在列秒鐘你會得到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;
更新通過以下查詢現有的日期。
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。並相應地更改您的代碼以便插入新記錄,更新現有記錄和相關功能,因此我們正在更改日期格式。
它的工作原理,謝謝:-) – AniZ
您應該必須爲日期時間爲您的字段提供數據類型。 而在此之前,您可以將所有現有日期轉換爲有效的日期格式「Y-m-d H:i:s」 –
好的,我如何處理STR_TO_DATE的轉換? – AniZ
DATE_FORMAT(STR_TO_DATE(delivery_date,'%d /%m /%y HH:MM'),'%Y-%m-%d HH:MM:SS') –