根据日期值将行分成多行

时间:2013-08-24 14:06:55

标签: sql

我正在尝试实现一个逻辑,它根据日期值将行分成多行 例如。我有1条这样的记录

Col1   Col2   Start_dat    End_dat     Last_dat    Next_dat
=====  ====   =========    =======     ========    ======== 
A      B      01-01-13     01-31-13    01-04-13    02-04-13

现在我突破了两排记录。

Col1   Col2   New_Start_dat    NewEnd_dat     Last_dat    Next_dat
=====  ====   =============    ==========     ========    ======== 
A      B      01-04-13         01-31-13       01-04-13    02-04-13

A      B      02-01-13         02-04-13       01-04-13    02-04-13

注意: - 日期采用mm-dd-yy格式。

1 个答案:

答案 0 :(得分:0)

你没有真正解释你的逻辑。我认为它是这样的:

select col1, col2, last_dat, as New_Start_dat, End_Dat as NewEnd_dat, last_dat, next_dat
from t
union all
select col1, col2, End_Dat + 1 as NewStart_dat, next_dat as NewEnd_Dat, last_dat, next_dat;
from t

在许多数据库中,将1添加到日期会增加一天。它也可能类似dateadd(day, 1, End_Dat)dateadd(1, Ent_Dat)

此外,这假设日期确实以日期格式存储,dd-mm-yy格式仅用于输出目的。