如何将MYSQL表列从Varchar数据类型更新为时间

rta7y2nd  于 2023-01-08  发布在  Mysql
关注(0)|答案(1)|浏览(129)

我在MYSQL数据库中有一个表,其中一列(Incident_Time)的值如03:15 A和12:30 P存储为varchar数据类型。但是,我想将数据类型从varchar更改为timestamp(time),以便将这些值视为时间值。例如,时间为10:37 AM。

-------------
Incident_Time
--------------
| 10:37 A    |
| 03:15 A    |
| 12:20 P    |

我尝试了以下代码:

UPDATE incident_tab_22 
SET Incident_Time = str_to_date(Incident_Time, '%h:%i  %p');

我一直收到以下错误信息:
错误1411(HY000):日期时间值不正确:函数str_to_date的"10:37 A"
作为替代解决方案,我还尝试了:

select *, SELECT STR_TO_DATE(Incident_Time, '%h:%i %p') ; as Time_of_Incident from incident_tab_22;

这只会导致创建一个列(Time_of_Incident),其中所有值都为NULL。我将感谢任何帮助,我可以得到这个问题。谢谢。

9ceoxa92

9ceoxa921#

要使用%p,您需要添加一个M:

select *, 
    STR_TO_DATE(concat(Incident_Time,'M'), '%h:%i %p') as Time_of_Incident
from incident_tab_22

fiddle

相关问题