【问题标题】:Mysql field delete all characters after 8th characterMysql字段删除第8个字符后的所有字符
【发布时间】:2020-10-03 07:57:17
【问题描述】:

我在一个表中有一个字段,它有一个时间值。

表名:会话 栏目:时间

例如

time
-----
09:00:00 (this should be the correct time)

12:00:00:00:00

09:00:00:00

11:00:00:00:00:00:00

16:00:00:00:00

这个表搞砸了,我想清理它,只保留每行的前 8 个字符,然后删除之后的所有内容。

有没有办法用 mysql 命令做到这一点?

谢谢

【问题讨论】:

标签: mysql sql string date sql-update


【解决方案1】:

使用字符串函数:

update mytable set mytime = substring(mytime, 1, 8)

我还建议将您的列的数据类型更改为time,以便数据库将来正确地为您强制执行数据完整性。如果您的数据可以隐式转换为目标格式(执行上述查询后应该是这种情况),您可以这样做:

alter table mytable modify mytime time;

请注意,time 不是列名的明智选择,因为它与 MySQL 数据类型冲突。我在查询中使用了mytime

【讨论】:

    【解决方案2】:

    你只需要更新表格:

    update sessions
    set time = left(time, 8)
    

    【讨论】:

      猜你喜欢
      • 2012-05-10
      • 2018-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-08
      • 1970-01-01
      • 2020-03-11
      相关资源
      最近更新 更多