3

Oracleデータベースから今月のレコードを選択する必要があるJavaプログラムを作成しています。使用する当日のレコードを選択する必要があるときはいつでも:

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')

もちろんこれは何も選択しません。助けてください。

4

2 に答える 2

9

purchase_date日付の場合。

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

purchase_dateVARCHAR の場合

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.

于 2012-10-04T13:17:31.973 に答える
0

purchase_date が であり、 のようにVARCHAR2フォーマットされていると仮定すると、そのようDD-MON-YYYYに見えます。

select * from purchases where trunc(to_date(purchase_date,'DD-MON-YYYY'),'MONTH') = trunc(sysdate,'MONTH')
于 2012-10-04T15:55:41.733 に答える