我们将日期时间存储在MySQL数据库的一个列中,该列以文本格式,但是当我们的日期时间应该如下所示时:
‘’xxxx xx-xx 00:00:00‘
该时间将被删除或不显示在我们的日期时间上,因此,在该特定时间,我们的日期时间只包含日期:
‘’xxxx xx-xx‘
我们想要的是首先找出发生这种情况的原因,但现在我们需要编辑每一行,并确保日期时间也显示时间。通过使用以下查询,我们试图更改受影响的行:
UPDATE table SET TIME(col_datetime) = '00:00:00' WHERE LENGTH(TIME(col_datetime)) = 0;上面的查询应该更新col_datetime的datetime上的时间,其中时间长度为0。不幸的是,我们收到了一个错误,我们无法运行查询。这是一个错误:
您的SQL语法出现了错误;请检查与MySQL服务器版本相对应的手册,以获得正确的语法,以便在第2行使用near '(time_start) =‘00:00:00:00’,其中长度(时间(Time_start))= 0‘
在没有显示时间的情况下,我们如何改变日期时间?
发布于 2020-01-07 13:22:55
不要将日期存储为字符串。相反,您希望使用datetime数据类型:它有一个时间部分,在未指定时默认为00:00:00。
以下是一个用于此目的的小转换脚本:
alter table mytable add col_datetime_new datetime;
update mytable set col_datetime_new = col_datetime;
alter table mytable drop col_datetime;
alter table mytable change column col_datetime_new col_datetime datetime;这利用了这样一个事实,即您在字符串日期中使用的是格式YYYY-MM-DD,因此向datetime的转换似乎是无足轻重的。
https://stackoverflow.com/questions/59629190
复制相似问题