我有一个日期格式的大表,包括'T'和'Z'字母表。我想删除这两个字母表,并在下一列中保存日期的其余部分。我的桌子看起来像:

     Utc          |date|area_in|area_out|  value  |
---------------------------------------------------
2015-12-05T03:00Z |NULL| 275   |  40    |   0     |
2015-12-05T03:00Z |NULL| 275   |  40    |   0     |
2015-12-05T03:00Z |NULL| 275   |  40    |   0     |
2015-12-05T03:00Z |NULL| 275   |  40    |   0     |

我希望我的桌子看起来像:
    Utc           |      date      |area_in|area_out|  value  |
---------------------------------------------------
2015-12-05T03:00Z |2015-12-05 03:00| 275   |  40    |   0     |
2015-12-05T03:00Z |2015-12-05 03:00| 275   |  40    |   0     |
2015-12-05T03:00Z |2015-12-05 03:00| 275   |  40    |   0     |
2015-12-05T03:00Z |2015-12-05 03:00| 275   |  40    |   0     |

utc列的数据类型是VARCHAR,date列的数据类型是DATETIME
我已经尝试了可用的解决方案,但无法工作。如何编写sql查询以在表中进行更改?
1) UPDATE tbl_entso_cdbf
   SET date = CONVERT(datetimeoffset, utc, 113)

2)`select convert(varchar(50), cast(utc as date), 113) from tbl_entso_cdbf`

它给我的错误如下:MySQL server version for the right syntax to use near 'VARCHAR(10), cast(utc as DATETIME), 113)....
谢谢你的帮助。

最佳答案

使用日期格式转换时间,然后使用它设置/更新

UPDATE `tbl_entso_cdbf` SET `date` = DATE_FORMAT(utc, "%Y-%m-%d %H:%i");

09-10 04:16
查看更多