选择当前月的记录在Oracle中

时间:2012-10-04 12:44:30

标签: java oracle11g

嗨大家我正在编写一个Java程序,我需要从Oracle数据库中选择当月的记录。任何时候我需要选择当天的记录我使用:

select * from purchases where purchase_date = to_char(sysdate, 'DD-MON-YYYY')

我应该使用什么方法来选择当月的记录? 在表格中,日期显示为:

10/4/2012 //for 4th October 2012

我试过

select * from purchases where purchase_date like to_char(sysdate, 'MON-YYYY')

这当然没有选择,请协助。

2 个答案:

答案 0 :(得分:9)

如果purchase_date是DATE。

select * 
from 
   purchases 
where 
   purchase_date >= trunc(sysdate,'mm')

如果purchase_date是VARCHAR

select * 
from 
   purchases 
where 
   to_date(purchase_date,'mm/dd/yyyy') >= trunc(sysdate,'mm')

trunc(sysdate,'mm')会截断保持月份和当年的当前日期,因此10/04/2012 08:58会被截断为10/01/2012 00:00

答案 1 :(得分:0)

假设purchase_date为VARCHAR2且格式为DD-MON-YYYY,似乎就是这种情况,那么:

select * from purchases where trunc(to_date(purchase_date,'DD-MON-YYYY'),'MONTH') = trunc(sysdate,'MONTH')