如何将Mysql表中的一条记录分为多条记录

Morhwa 2014-10-30 03:07:37
现在假设有如下表即记录:
id loginTime logoutTime onlineTime
201 2014-06-01 12:00:00 2014-06-03 12:00:00 172800
注:172800即48小时,也就是logoutTime与loginTime的时间差

如何变为如下表即记录:
id loginTime logoutTime onlineTime
201 2014-06-01 12:00:00 2014-06-01 23:59:59 43200
201 2014-06-02 00:00:00 2014-06-02 23:59:59 86400
201 2014-06-03 00:00:00 2014-06-02 12:00:00 43200

简单的说就是将一条跨越3天的记录分成3条单天的记录~~谢谢指点!
...全文
382 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Morhwa 2016-06-14
  • 打赏
  • 举报
回复
引用 5 楼 ACMAIN_CHM 的回复:
创建一张包括所有日期的辅助表,然后可以利用JOIN查询来实现。
这个方法可行,结贴了
jielovehuan 2014-10-31
  • 打赏
  • 举报
回复
楼上这个方法可以考虑一下。
ACMAIN_CHM 2014-10-31
  • 打赏
  • 举报
回复
创建一张包括所有日期的辅助表,然后可以利用JOIN查询来实现。
pony520 2014-10-30
  • 打赏
  • 举报
回复
ONLINETIME是按半天,还是一天分出来,还是不固定的?有固定的分割还是好处理
Morhwa 2014-10-30
  • 打赏
  • 举报
回复
引用 1 楼 zhurcn 的回复:
是不是在你程序insert的时候就应该判断是否超过一天,然后分别insert,而不是insert后怎么考虑修改记录
原表是一个log,先保持最初的格式存储,不做处理,后面根据需要再处理,就像现在
九月茅桃 2014-10-30
  • 打赏
  • 举报
回复
这种只有写存储过程了或者在代码里面判断之后,汇总成insert的sql了。
搬砖的码农 2014-10-30
  • 打赏
  • 举报
回复
是不是在你程序insert的时候就应该判断是否超过一天,然后分别insert,而不是insert后怎么考虑修改记录

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧