我有一个表,其中NUMBER(4)
列是MEETINGYEAR
。其他列是MEMBERNO
和ATTENDEES
。
我想写一个查询,查找大于或等于“当前年份”减去3年的MEETINGYEAR
,这样我就不必在每年运行查询时手动输入当前年份的值(即:2023)。
本质上,我正在寻找本年度(2023年)或前3年的记录。如果找到,则结果= Y,否则为N。
这是迄今为止我自己做的最好的:
select '4. Annual Meeting Management' Item,
decode(count(*),NULL,'N',0,'N','Y') Result
from member_annual_meeting
where meetingyear >= '2023'-3;
1条答案
按热度按时间dy1byipe1#
SYSDATE
是一个Oracle函数,它以DATE数据类型返回当前日期和时间(精确到秒)。然后,您可以使用
to_char()
或extract
函数来提取年份,例如:请注意,
to_char()
返回一个字符串,因此您实际上应该在整个字符串周围抛出to_number()
,以显式地将其转换为数字。Extract
返回一个数字,所以我建议您使用这个数字;不需要额外的数据类型转换。