我有一个日期格式的大表,包括'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");