如何在Oracle中的日期时间操作中将月份和日期进行比较?
假设,currentdate as = 2014年8月15日(采用日期时间格式)。
我必须比较当前日期(不包括年份)与2年不同的静态日期,例如
Filter as - 15/Aug between 01/Jul and 20/Dec.
我认为上述工作我们需要以日期时间格式一起提取日期和月份。请提出答案。感谢。
答案 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';