Oracle中的月和日比较

时间:2014-07-11 14:22:00

标签: sql oracle datetime

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

假设,currentdate as = 2014年8月15日(采用日期时间格式)。

我必须比较当前日期(不包括年份)与2年不同的静态日期,例如

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

我认为上述工作我们需要以日期时间格式一起提取日期和月份。请提出答案。感谢。

2 个答案:

答案 0 :(得分:3)

您可以使用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');

答案 1 :(得分:1)

只需使用to_char连接月份和日期(均为两位数值),然后使用:

select *
from mytable
where to_char(mydate,'mmdd') between '0815' and '1220';