sql - 无论年份如何计算生日日期
问题描述
我想用接下来 8 天的帐户创建日期来计算客户,所以我想只使用日期和月份来计算这个日期,如果创建周年日期在 8 天内,我可以检索这些联系人并联系他们. 是否有任何查询示例仅使用一天中的月份来计算即将到来的日期?
谢谢你
解决方案
您可以尝试做这样的事情(在 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 中,您可以通过创建自动生成的列并在其上建立索引来实现相同的目的。
推荐阅读
- python - 如何为传递给另一个类的 kwarg 添加类型提示,而无需复制我的提示和/或文档?
- azure-devops - 如何更改工作项历史记录中的 CreatedBy?
- laravel - 使所选项目成为当前项目
- excel - Excel 将多个列与多个条件之一相加为真
- excel - COUNTIFS - 向下拖动,线性填充条件:
- angular - 属性 'map' 没有初始化程序,也没有在构造函数 @ViewChild 中明确分配
- javascript - TypeError:无法读取未定义的属性“绑定”,我不知道这意味着什么。反应js
- asp.net-core - ABP 和每个层次结构的表
- python - music21 :给定 midi 输入,输出正确拼写的音高和八度数
- google-apps-script - 为什么 Google 表格中的正则表达式公式会阻止 Google 表格脚本正常运行?