查找日期间隔开始和结束日期

时间:2011-07-17 18:25:36

标签: mysql sql

我有一个这样的表格(加上另外10列),其中包含超过100万条经常更新的记录:

 id pid start_date          end_date  
  1 761 2011-07-25 00:00:00 2011-08-01 00:00:00
  2 761 2011-08-01 00:00:00 2011-08-22 00:00:00
  3 761 2011-08-22 00:00:00 2011-09-19 00:00:00
  4 802 2011-08-22 00:00:00 2011-09-19 00:00:00
  5 761 2011-06-05 00:00:00 2011-07-05 00:00:00

并希望获得特定pid的结果(下例中为761),并且所有连续的时间间隔合并:

 id pid start_date          end_date  
  1 761 2011-07-25 00:00:00 2011-09-19 00:00:00
  5 761 2011-06-05 00:00:00 2011-07-05 00:00:00

目前我在代码中执行此操作,但希望将此功能完全移至db端。 任何想法如何做到这一点?

编辑:start_date和end_date列属于DATETIME类型。

1 个答案:

答案 0 :(得分:0)

这在代码中做得更好。循环遍历行,当它是同一产品时,更新结束日期,否则创建一个新的数组条目。

有关SQL在SQL中有多复杂的想法,请参阅m y attempt at solving this in SQL Server:)