Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> last month
Method
post
Post #1





Grupa: Zarejestrowani
Postów: 177
Pomógł: 6
Dołączył: 14.01.2003
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


a wiec chcialbym uzyskac pierwszy i ostatni dzien ubieglego miesiaca
kombinowalem tak:
select (add_months(to_date(sysdate), -1)) from dual

moze ktoś ma jakieś lepszy pomysl?

temat stary jak swiat ale dzis po dluzszej przerwie dopiero dotarlem na forum.
rozumiecie wszedzie korki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

a to moze sie komus przyda:
  1. CREATE OR REPLACE FUNCTION "LORLIK"."DATA_KONCOWA_MIESIACA"
  2. RETURN date IS
  3.  
  4. dzien NUMBER;
  5. v_wstecz CONSTANT NUMBER := 10;
  6. v_last_day date;
  7. BEGIN SELECT TO_CHAR (SYSDATE, 'DD')
  8.  
  9. INTO dzien FROM DUAL; IF dzien > v_wstecz
  10. THEN
  11. SELECT LAST_DAY(add_months(to_date(sysdate), -1))
  12. INTO v_last_day FROM dual; else
  13. SELECT LAST_DAY(add_months(to_date(sysdate), -2))
  14. INTO v_last_day FROM dual; END IF;
  15.  
  16. RETURN v_last_day;
  17. END;
  18.  
  19. --- i druga
  20.  
  21. /* (Formatter Plus v4.8.5) */
  22. CREATE OR REPLACE FUNCTION "LORLIK"."DATA_POCZ_MIESIACA"
  23. RETURN DATE IS
  24.  
  25. dzien NUMBER;
  26. v_wstecz CONSTANT NUMBER := 10;
  27. v_first_day DATE;
  28. --v_parse date;
  29. BEGIN --by wiedziec czy month-1 czy month-2
  30. SELECT TO_CHAR (SYSDATE, 'DD')
  31.  
  32. INTO dzien FROM DUAL; IF dzien > v_wstecz
  33. THEN
  34. SELECT to_date('01'||to_char((add_months(to_date(sysdate), -1)),'mmyyyy'),'ddmmyyyy')
  35. INTO v_first_day FROM dual; else
  36. SELECT to_date('01'||to_char((add_months(to_date(sysdate), -2)),'mmyyyy'),'ddmmyyyy')
  37. INTO v_first_day FROM dual; END IF;
  38. --v_parse := TO_DATE(v_first_day,'ddmmyyyy');
  39. RETURN v_first_day;
  40. END;

a te n const to po to by bral po 10 jak sie koncyz okres rozliczeniowy

pozdrawiam

Ten post edytował Method 4.10.2005, 11:09:53
Go to the top of the page
+Quote Post
_Oscar_
post
Post #2





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 18.03.2006

Ostrzeżenie: (0%)
-----


pierwszy dzień poprzedniego miesiaca
select TRUNC(SYSDATE,'MM') - TO_YMINTERVAL('00-01') from dual;
ostatni dzień
select last_day(TRUNC(SYSDATE,'MM') - TO_YMINTERVAL('00-01')) from dual;

jak chcesz innych miesiecy poprostu zmieniasz '00-01' na '00-02' <- dwa w tył
Pozdrawiam
OSCAR
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 03:55