我有一张带有dateformat的大桌子,其中包括' T'和' Z'字母。我想删除这两个字母,并在下一列保存其余日期。我的表(tbl_entso_cdbf)看起来像:
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
,日期列的数据类型为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)....
感谢您的帮助。
答案 0 :(得分:1)
使用DATE_FORMAT转换时间,然后使用它来设置/更新
UPDATE `tbl_entso_cdbf` SET `date` = DATE_FORMAT(utc, "%Y-%m-%d %H:%i");
答案 1 :(得分:1)
使用str_to_date()函数将字符串转换为日期:)
UPDATE `tbl_entso_cdbf` SET `date` = STR_TO_DATE(utc, "%Y-%m-%dT%H:%iZ");