Oracle:查询指定日期范围内每月5/15/25日的日期数据
查询日期范围内每月5日、15日、25日的记录
从现有表中筛选符合条件的记录
根据你使用的数据库,选择对应的SQL语句:
MySQL
SELECT date_column FROM your_table WHERE date_column BETWEEN '2022-04-01' AND '2022-08-31' AND DAY(date_column) IN (5, 15, 25) ORDER BY date_column;
DAY(date_column)提取日期字段的日部分IN (5,15,25)限定只保留指定日期的记录BETWEEN约束日期范围,ORDER BY按日期排序
PostgreSQL
SELECT date_column FROM your_table WHERE date_column BETWEEN '2022-04-01' AND '2022-08-31' AND EXTRACT(DAY FROM date_column) IN (5, 15, 25) ORDER BY date_column;
- 使用
EXTRACT(DAY FROM ...)获取日期的日部分
SQL Server
SELECT date_column FROM your_table WHERE date_column BETWEEN '2022-04-01' AND '2022-08-31' AND DATEPART(DAY, date_column) IN (5, 15, 25) ORDER BY date_column;
- 使用
DATEPART(DAY, ...)提取日部分
生成指定范围内的目标日期(无表时)
如果不需要从现有表查询,而是直接生成符合条件的日期序列,以MySQL为例:
WITH RECURSIVE date_series AS ( SELECT '2022-04-01' AS dt UNION ALL SELECT DATE_ADD(dt, INTERVAL 1 DAY) FROM date_series WHERE dt < '2022-08-31' ) SELECT DATE_FORMAT(dt, '%d-%m-%Y') AS target_date FROM date_series WHERE DAY(dt) IN (5, 15, 25) ORDER BY dt;
执行后会输出类似你示例中的日期格式:
05-04-2022 15-04-2022 25-04-2022 ... 15-08-2022 25-08-2022
内容的提问来源于stack exchange,提问作者Intekhab Alam
相关产品推荐
相关产品推荐

