mysql 每六个月查找一次记录[已关闭]

myzjeezk  于 2022-12-28  发布在  Mysql
关注(0)|答案(3)|浏览(150)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。

4小时前关门了。
Improve this question
我有5年的数据。我想每6个月检索一次。让我们假设今天的日期是2022年10月19日。

Date
2022-10-19
2022-04-30
2021-11-30
2021-05-31

我想每六个月最后一次约会。直到2017年

gmxoilav

gmxoilav1#

您发布的示例数据看起来不正确;四月前六个月是十月,不是十一月。
一种选择是使用层次查询。I * 硬编码 * 你说的日期代表“今天”;实际上,您可以将它(date '2022-10-19')替换为sysdate

SQL> select last_day(add_months(date '2022-10-19', -6 * (level - 1))) datum
  2  from dual
  3  connect by level <= (extract(year from date '2022-10-19') - 2017) * 2;

DATUM
----------
2022-10-31
2022-04-30
2021-10-31
2021-04-30
2020-10-31
2020-04-30
2019-10-31
2019-04-30
2018-10-31
2018-04-30

10 rows selected.

SQL>
nfg76nw0

nfg76nw02#

SELECT * 
FROM table
WHERE date between to_date('2017-01-01', 'YYYY-MM-DD') and to_date('2022-10-19', 
'YYYY-MM-DD')
and extract(month from date) IN (1, 7)
u3r8eeie

u3r8eeie3#

您可以通过DATEDIFF函数执行此操作,如下所示:

SELECT date ,* FROM table_name
where  DATEDIFF(MONTH,Date,GETDATE()) = 6

相关问题