如何计算不计年份的生日

时间:2019-03-07 15:41:29

标签: sql

我想用未来8天的帐户创建日期来计算客户,因此我只想使用日期和月份来计算此日期,如果创建周年纪念日是8天,则可以检索这些联系人并与他们联系。 是否有查询示例,仅使用一个月的一天来计算即将到来的日期?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以尝试执行以下操作(在PostgresQL上进行了测试,可能需要对其他数据库进行一些调整):

select * from temp_contacts where
    to_char(date_created, 'MM-dd') = 
      to_char(current_date + interval '8 day', 'MM-dd');

对于每一行,它首先将date_created映射为使用MM-dd格式的字符串,然后对当前日期+ 8天执行相同操作,然后将两者进行比较。 当然,这不使用任何索引,因此在大小足够大的表上将无法正常工作。

某些DB支持创建基于函数的索引。例如PostgresQL或Oracle DB。在MySQL中,您可以通过创建自动生成的列并对其进行索引来实现相同目的。