use*_*670 7 sql oracle datetime
您如何在 Oracle 的日期时间操作中比较月份和日期?
假设,当前日期为 = 2014 年 8 月 15 日(日期时间格式)。
我必须将当前日期(不包括年份)与不包括年份的 2 个不同静态日期进行比较,例如
Filter as - 15/Aug between 01/Jul and 20/Dec.
Run Code Online (Sandbox Code Playgroud)
我认为要使上述工作正常进行,我们需要以日期时间格式一起提取日期和月份。请提出答案。谢谢。
您可以使用 TO_CHAR 函数将日期转换为文本,然后进行比较。
SELECT *
FROM mytable
WHERE TO_CHAR(SYSDATE, 'MMDD') BETWEEN TO_CHAR(start_date, 'MMDD') AND TO_CHAR(end_date, 'MMDD');
Run Code Online (Sandbox Code Playgroud)
BETWEEN 运算符包含限制。如果不想包含限制,可以使用:
SELECT *
FROM mytable
WHERE TO_CHAR(SYSDATE, 'MMDD') > TO_CHAR(start_date, 'MMDD')
AND TO_CHAR(SYSDATE, 'MMDD') < TO_CHAR(end_date, 'MMDD');
Run Code Online (Sandbox Code Playgroud)
只需使用 to_char 来连接月份和日期(均为两位数值),然后在以下之间使用:
select *
from mytable
where to_char(mydate,'mmdd') between '0815' and '1220';
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13845 次 |
最近记录: |