在我的订单表中,我有一个" delivery_date" varchar类型的字段,所有值如下所示: " d / m / y在H:m"
如何将此字段和值转换为有效日期时间Y-m-d H:i:s?
答案 0 :(得分:2)
SELECT STR_TO_DATE(delivery_date, '%d/%m/%Y at %H:%i') as date_value
FROM order_table
请参阅format here
答案 1 :(得分: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');
通过上述查询修改了所有日期后,您可以将delivery_date的数据类型更改为datetime。并相应地更改代码,以便记录新记录,更新现有记录和相关功能,因为我们正在更改日期格式。
答案 2 :(得分:0)
您可以使用MySQL的STR_TO_DATE
功能,也可以使用PHP的strtotime
功能。
strtotime(date('Y-m-d H:i:s'));
答案 3 :(得分: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;