我有一个问题,涉及我的查询的WHERE子句:

...
WHERE distinct_policy.policy_created_date_time between '2023-03-01' and '2023-03-11'

列"policy_created_date_time"是不带时区的时间戳.我只想 Select 10天(3月1日-3月10日),但在任何一年(不仅仅是2023年).

有什么简单的方法可以做到这一点,因为SQL不允许我只删除年份.

推荐答案

一种 Select 是判断月份和日期,直接提取这些部分,使用EXTRACT.

...
WHERE EXTRACT(MONTH FROM distinct_policy.policy_created_date_time) = 3 
  AND EXTRACT(DAY FROM distinct_policy.policy_created_date_time) BETWEEN 1 AND 10

Sql相关问答推荐

Oracle SQL对列进行汇总并在列表底部显示总计

如何更改函数返回的列名?

解析键-值对,根据值 Select ,并使用SQL创建新列

如果开始期间不存在PostgresSql回填数据

为什么在postgres中,横向连接比相关子查询快?

snowflake/SQL嵌套的JSON对象和数组

将FLOAT转换为VARBINARY,然后再转换回FLOAT

ColdFusion+Docker:未安装SQLSERVER包

在PostgreSQL中汇总连接表中的 case 值

通过对象分离实现原子性

表函数的作用域和功能

将用户授予另一个用户不授予权限

从重复值中获取最新值

根据具有特定值的 ID 创建自定义组

SQL 根据前一天的最大值计算每天的值数

验证某个日期前后的连续代码

MS ACCESS 错误插入 X(...) 从 A 联合 Select ... 从 B

如何从 2 个 SQLite 表构建嵌套对象?

如何通过子 Select 在一次更新(并行数组)中多次更新相同的行

具有关联统计信息 N+1 的 Rails 6 索引资源?