首页 > 解决方案 > 无论年份如何计算生日日期

问题描述

我想用接下来 8 天的帐户创建日期来计算客户,所以我想只使用日期和月份来计算这个日期,如果创建周年日期在 8 天内,我可以检索这些联系人并联系他们. 是否有任何查询示例仅使用一天中的月份来计算即将到来的日期?

谢谢你

标签: sql

解决方案


您可以尝试做这样的事情(在 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 天执行相同操作并比较两者。这当然没有使用任何索引,因此它在足够大的表上表现不佳。

一些数据库支持创建基于函数的索引。例如 PostgreSQL 或 Oracle DB。在 MySQL 中,您可以通过创建自动生成的列并在其上建立索引来实现相同的目的。


推荐阅读