我在某些时期的比较逻辑有一些问题。 我有我的数据库中的表看起来像这样:SQL日期,期间比较
Id|startDate |amount of weeks|
--------------------------------
A1|2010-01-04 | 3
B3|2010-01-11 | 2
所有startDates开始在每周的同一天(星期一)
现在我需要编写一个SQL在那里我有2个参数(一个开始日期和一个新的“周期”的周数),我需要检查并返回所有startdate相同的行。但是,所有的究竟是谁是新的“期”的范围之内的行应藏汉
一些例子返回澄清这一点:
- when I give the following parameters (2010-01-04,1) I would need to have row 1 with id A1 returned
- (2010-01-11,1) ---> return A1,B3
- (2009-12-28,1) ---> return nothing
- (2009-12-28,2) ---> return A1
- (2010-01-18,1) ---> return A1,B3
现在我知道如何与参数等工作,所以我basicly需要一些帮助建立sql的逻辑。
SELECT ID FROM表,其中的startDate = {0}或的startDate = {1} .....
我正在一个SQL服务器上(但我认为非方言SQL可以做的伎俩以及)
与2010-01-04作为开始日期的周期有3个星期的持续时间,所以它仍然运行在2010-01-11的一周,所以它确定。需要返回这一行。无论如何 – Ayrton 2009-12-29 22:13:10
应该始终返回几周具有相同开始日期的周数因此,我应该了解您希望返回:范围内的任何日期在日期范围内的任何记录传入? (日期范围=开始日期到使用星期数计算的日期) – 2009-12-29 22:42:36
是和一段时间始终在星期一开始,并在星期日结束。因此,当我给出开始日期和周数作为参数时,我应该得到在参数 – Ayrton 2009-12-29 22:47:57