我正在尝试实现一个逻辑,它根据日期值将行分成多行 例如。我有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格式。
答案 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
格式仅用于输出目的。