MySQL将字符串转换为datetime

时间:2016-07-30 18:07:44

标签: php mysql

在我的订单表中,我有一个" delivery_date" varchar类型的字段,所有值如下所示: " d / m / y在H:m"

如何将此字段和值转换为有效日期时间Y-m-d H:i:s?

4 个答案:

答案 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;