SQL - 转换日期时间格式

5

我想在MySQL中更改日期时间格式。

我有一张历史表,其中一些列的格式为DATETIME:

JJ/MM/AAAA HH:MM

我需要修改为:

AAAA-MM-JJ HH:MM:SS

我没有SS变量,我希望它变成00。
示例:
01/12/2012 12:23 > 2012-12-01 12:23:00

谢谢

3个回答

10

4

使用date_format()函数

尝试以下代码:

  SELECT  date_format(columnname,'%Y-%m-%d %h:%i:%s') as yourdate FROM tablename

2

所有已发布的答案都不可行,因为您的数据将无法识别为日期。请改用字符串转换:

UPDATE tablename SET columnname = CONCAT(SUBSTR(columnname,7,4),'-',SUBSTR(columnname,4,2),'-',SUBSTR(columnname,1,2),SUBSTR(columname,11),':00');

希望这能帮到你。

1
如果他有一个varchar(或text)列类型,则为真。但是,如果该列是DATETIME类型(如问题中指定的),则将被识别。在这种情况下,最好参见https://dev59.com/Mmgv5IYBdhLWcg3wY_42和[`STR_TO_DATE()`](http://dev.mysql.com/doc/en/date-and-time-functions.html#function_str-to-date)函数。 - PhoneixS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接