我有一张名为links
的表格,显示两个人在一起(即结婚)的日期范围。以下是2行的示例:
id association_left association_right dateFrom dateTo
1 Dad Mom 2010-02-13 2011-01-15
2 Dad Mom 2012-04-17 2015-11-28
所以在这里我们看到爸爸和妈妈在一起两个不同的时间段。
但我想知道:有没有办法证明爸爸和妈妈目前在一起?类似的东西:
id association_left association_right dateFrom dateTo
3 Dad Mom 2016-02-09 present
如果没有,如果两个人目前一起展示会是什么样的有效方式呢?
答案 0 :(得分:1)
最好使用infinity
作为延伸到未来的时间范围的上限。
NULL
,意思是“未知”,不是最好的代表,因为这样你就无法消除“未知日期”和“未来某个地方的数据”之间的歧义。
此外,如果您使用infinity
,您的查询将变得更简单,从而提高效率。比较:
... WHERE adate >= datefrom AND (dateto IS NULL OR adate <= dateto)
和
... WHERE adate BETWEEN datefrom AND dateto
第二个表达式可以更好地使用索引。
答案 1 :(得分:0)
我认为你在问是否没有日期然后假设他们目前在一起
将dateTo列保留为null并使用coalesce(dateTo,current_date)