Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Konwersja varchar do daty
Forum PHP.pl > Forum > Bazy danych > Oracle
pawstrze
Cześć,
potrzebuję stworzyć funkcję, która jako parametr przyjmie datę, po to by potem w ciele funkcji wyciągnąć z bazy te rekordy, które będą odpowiadały miesiącowi podanymi w argumencie.
Czyli. Wywołuję funkcję np FUNKCJA(16/04) - czyli chodzi mi o kwiecień 2016 i potem chciałbym zamienić ten varchar na datę. Niestety to nie wychodzi.

  1. CREATE OR REPLACE procedure rozkladWMiesiacu(miesiac char)
  2. IS
  3. test number;
  4. a date:=TO_DATE(miesiac, 'yy/mm');
  5. wiersz wydatki%rowtype;
  6. cursor zapytanie IS SELECT * FROM wydatki WHERE dat = a;
  7.  
  8. begin
  9. dbms_output.put_line(miesiac);
  10. dbms_output.put_line(a);
  11. open zapytanie;
  12. loop
  13.  
  14. fetch zapytanie INTO wiersz;
  15. exit when zapytanie%notfound;
  16. dbms_output.put_line(wiersz.wyd_id ||' '||
  17. wiersz.kat_id ||' '|| wiersz.kwota ||' '|| wiersz.czl_id ||' '|| wiersz.dat ||' '|| wiersz.nazwa);
  18. dbms_output.put_line(wiersz.wyd_id);
  19. dbms_output.put_line(wiersz.wyd_id);
  20.  
  21. end loop;
  22. test:=2;
  23. end;


Być może kod jest mocno chaotyczny - dopiero zaczynam SQL-a ale nie rozumiem dlaczego nie działa. Zauważyłem, że ta instrukcja
  1. dbms_output.put_line(a);
wyrzuca datę w formacie yy/mm/dd czyli ta konwersja
  1. a date:=TO_DATE(miesiac, 'yy/mm');
nie zadziałał tak jak oczekiwałem.

Gdzie leży problem?
tdobe
"a" jest typu "DATE" a dbms_output.put_line oczekuje tekstu. po zatym jak ty chcesz miesiac przekonwertowac na datę? - nie da się...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.