【发布时间】:2011-08-22 22:06:14
【问题描述】:
我有一个表,其中存储了 StartDate 和开始日期所在的星期几的名称。我不知道为什么,这是一个糟糕的设计,但我没有创造它,也无法改变它。所以当然,现在我们有一些日期与星期几不匹配。更糟糕的是,星期几是正确的,而开始日期是不正确的。所以我需要做的是调整日期,使每一行的 StartDate 落在该行的 DayOfWeek 上。我们可以假设 StartDate 始终是最小值,因此目标日期将是当前设置的 StartDate 之后的第一个 [DayOfWeek]。
例如,我的行看起来像这样(2010 年 8 月 23 日是星期一,2010 年 8 月 29 日是太阳):
StartDate DayOfWeek
-----------------------
2010-08-23 Monday
2010-08-23 Tuesday
2010-08-29 Thursday
在第 2 行中,您可以看到日期应该是星期二,但实际上是星期一。我需要结束这个:
StartDate DayOfWeek
-----------------------
2010-08-23 Monday
2010-08-24 Tuesday
2010-09-02 Thursday
我在处理日期时总是很吃力,但 SQL 也不是我最擅长的技能。谢谢。
【问题讨论】: