MySQL:更改列类型和日期时间格式

标签 mysql sql

我的数据库当前将“日期”列设置为 varchar(20),我的日期格式如下:

1/13/2015 20:00

我想在我的数据库上运行更新以将列类型更改为日期时间并将我当前日期的格式更改为更典型的格式,例如

yyyy-mm-dd hh:mi

这可以在 MySQL 中完成吗?

最佳答案

使用 STR_TO_DATE 功能

This is the inverse of the DATE_FORMAT() function. It takes a string str and a format string format. STR_TO_DATE() returns a DATETIME value if the format string contains both date and time parts, or a DATE or TIME value if the string contains only date or time parts. If the date, time, or datetime value extracted from str is illegal, STR_TO_DATE() returns NULL and produces a warning.

查看转换的日期

select str_to_date(date_column, '%m/%d/%Y %h:%i') 
from tablename

确保一切正常然后运行update语句

update tablename set date_column = str_to_date(date_column, '%m/%d/%Y %h:%i')

最好以datetime数据类型存储datetime数据

Alter table tablename modify column date_column datetime 

关于MySQL:更改列类型和日期时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34553198/

相关文章:

php - 在获取中添加?

sql - 如何在SQL Server 2008中进行分页

sql - 如何按日期时间进行数据透视表或交叉表?

java - 在 Java 中找不到方法 "setString(int,String)"的符号

PHP - 更新 MySQL 数据库

php - OpenCart - 从产品查询中删除一个类别及其子类别

sql - 如何拒绝所有用户删除表

mysql - 找出每组前 10% 的购买产品,然后找出这 10% 的平均值

php - NULL 默认值不一致,并且更新将 NULL 更改为空字符串 Laravel4

mysql - 对多连接表求和