编辑为了进一步简化这一点。
我们来看看这个结构:
表 1:idProduct (int) | 名称(varchar)
表 2:idDay (int) | idProduct (int) | 日期开始(日期时间) | date_end(日期时间)
idProduct 是两个表中的公共列。表二包含与此类似的数据:
0, 2, 11/22/2012, 11/22/2012
1, 2, 11/23/2012, 11/23/2012
2, 2, 11/24/2012, 11/24/2012
3, 2, 00/00/0000, 11/25/2012
4, 2, 11/25/2012, 00/00/0000
请注意,date_start、date_end 或两者都可能全为零,在这种情况下,此上限或下限被视为不受限制/不受限制。
在上述情况下,我只想选择 ID 为 2 的 idProduct,前提是今天的日期介于时间段之间 - date_start 中的最早日期和 date_end 中的最晚日期。如果 date_start 是 00/00/0000 总是返回产品但是如果 date_end 在未来。相反适用于 date_end 全为零并且 date_start 被设置。如果两列都为零,则返回产品。