2017-07-31 38 views
0

我需要設置def_where條件我從來沒有在表單中使用過,所以我在網上搜索,我沒有找到任何我需要的東西。Oracle表單查詢def_where

我有這樣的例子:

def_where:=def_where||' and napomena like '''||:ro_dok.dsp_napomena||'%' 
    ||:ro_dok.dsp_otpremnica||'%'''; 

,我需要的是一個日期字段(date_of_input - DD.MM.YYYY)我需要2場比較一個是月(炭),一個是今年(數字)。一天並不重要。

def_where:=def_where||' and date_of_input like '''||:ro_dok.dsp_month||'%' 
    ||:ro_dok.dsp_year||'%'''; 

使用此代碼它不工作我可以從我輸入的月份或年份獲得產品的列表。

是否有人知道我將如何使用這兩個字段(月,年)與數據字段進行比較。

+0

你可以用'EXTRACT'函數來獲得年份和月份出你的約會,然後做對比日期轉換爲字符串。看到這裏https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions050.htm – XING

回答

1

可以使用TO_CHAR()

def_where:=def_where||' and TO_CHAR(date_of_input,''MMYYYY'') 
like '''||:ro_dok.dsp_month||'%' 
     ||:ro_dok.dsp_year||'%'''; 
+0

它幫了我一下,現在我在這段代碼中可能帶有引號的錯誤... def_where:= def_where ||」 TO_CHAR(date_of_input,「MM」)like'''||'to_char(date_of_input,'MM'')= nvl(:DSP_month,to_char(date_of_input,''MM''))'||'%' || 'TO_CHAR(date_of_input,''RRRR ')= NVL(:DSP_year,TO_CHAR(date_of_input,' 'RRRR' '))' || '%' ''; 有人可以檢查出來!!! – mikrimouse