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

时间:2022-04-23 21:22:46
现在假设有如下表即记录:
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条单天的记录~~谢谢指点!

7 个解决方案

#1


是不是在你程序insert的时候就应该判断是否超过一天,然后分别insert,而不是insert后怎么考虑修改记录

#2


这种只有写存储过程了或者在代码里面判断之后,汇总成insert的sql了。

#3


引用 1 楼 zhurcn 的回复:
是不是在你程序insert的时候就应该判断是否超过一天,然后分别insert,而不是insert后怎么考虑修改记录


原表是一个log,先保持最初的格式存储,不做处理,后面根据需要再处理,就像现在

#4


ONLINETIME是按半天,还是一天分出来,还是不固定的?有固定的分割还是好处理

#5


创建一张包括所有日期的辅助表,然后可以利用JOIN查询来实现。

#6


楼上这个方法可以考虑一下。

#7


引用 5 楼 ACMAIN_CHM 的回复:
创建一张包括所有日期的辅助表,然后可以利用JOIN查询来实现。


这个方法可行,结贴了

#1


是不是在你程序insert的时候就应该判断是否超过一天,然后分别insert,而不是insert后怎么考虑修改记录

#2


这种只有写存储过程了或者在代码里面判断之后,汇总成insert的sql了。

#3


引用 1 楼 zhurcn 的回复:
是不是在你程序insert的时候就应该判断是否超过一天,然后分别insert,而不是insert后怎么考虑修改记录


原表是一个log,先保持最初的格式存储,不做处理,后面根据需要再处理,就像现在

#4


ONLINETIME是按半天,还是一天分出来,还是不固定的?有固定的分割还是好处理

#5


创建一张包括所有日期的辅助表,然后可以利用JOIN查询来实现。

#6


楼上这个方法可以考虑一下。

#7


引用 5 楼 ACMAIN_CHM 的回复:
创建一张包括所有日期的辅助表,然后可以利用JOIN查询来实现。


这个方法可行,结贴了