您如何在Oracle中的日期时间操作中比较月份和日期?

假设当前日期为2014年8月15日(以日期时间格式)。

我必须将currentdate(不包括年)与2个不同的不包括年的静态日期进行比较,例如

Filter as - 15/Aug between 01/Jul and 20/Dec.


我认为,要使以上各项起作用,我们需要以日期时间格式一起提取日期和月份。请提出答案。谢谢。

最佳答案

您可以使用TO_CHAR函数将日期转换为文本,然后进行比较。

SELECT *
FROM mytable
WHERE TO_CHAR(SYSDATE, 'MMDD') BETWEEN TO_CHAR(start_date, 'MMDD') AND TO_CHAR(end_date, 'MMDD');


BETWEEN运算符包括这些限制。如果您不想包括这些限制,则可以使用:

SELECT *
FROM mytable
WHERE TO_CHAR(SYSDATE, 'MMDD') > TO_CHAR(start_date, 'MMDD')
AND TO_CHAR(SYSDATE, 'MMDD') < TO_CHAR(end_date, 'MMDD');

10-06 13:57