嗨大家我正在编写一个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')
这当然没有选择,请协助。
答案 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')