Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> MYSQL - ile dni ma dany miesiąc
qrcze_pieczone
post
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 2
Dołączył: 13.04.2007

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


Witam
Czy może ktoś pomysł jak wyciągnąć z Mysql informacje ile dni ma każdy miesiąc w roku,
z tego co mi się udało zorientować to nie ma do tego gotowej funkcji w Mysql.
W PHP jest to stosunkowo proste do zrobienia:
  1. $month=2;
  2. $year=2009;
  3. echo date('t', mktime(0, 0, 0, $month , 1, $year));

ale jak to zrobić w MYSQL
za dobrą radę będę jak zawsze dzwięczny (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Dobra rada: Przejrzyj listę funkcji dotyczących DAT w manualu MYSQL
Go to the top of the page
+Quote Post
qrcze_pieczone
post
Post #3





Grupa: Zarejestrowani
Postów: 59
Pomógł: 2
Dołączył: 13.04.2007

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


wookieb trafność twojej rady zwaliła mnie z krzesła (IMG:style_emoticons/default/winksmiley.jpg)
mimo że przeglądałem funkcje w manualu MySQL-a nie znalazłem gotowej funkcji na mój problem (może źle przeglądam tego manuala, może ta funkcja gdzieś jest tak mocno schowana, że ja jej znaleźć nie mogę (IMG:style_emoticons/default/sad.gif) ).
Więc postanowiłem sam napisać funkcję która w MySQL mi da efekt o który mi chodzi

  1. DROP FUNCTION IF EXISTS nazwaTwojejBazy.HowManyDayInMonth;
  2. CREATE FUNCTION nazwaTwojejBazy.`HowManyDayInMonth`(YEAR_ INT(4),MONTH_ INT(2)) RETURNS int(2)
  3. READS SQL DATA
  4. DETERMINISTIC
  5. BEGIN
  6.  
  7. DECLARE return_value INT(2);
  8. SELECT TIMESTAMPDIFF(DAY,CONCAT(YEAR_,"-",MONTH_,"-","01"),LAST_DAY(CONCAT(YEAR_,"-",MONTH_,"-","01")))
  9. INTO return_value;
  10. RETURN (return_value+1);
  11. END;

Funkcję wywołujemy
  1. SELECT HowManyDayInMonth("2009","02") AS Ile_Dni_W_Miesiacu

umieszczam jak by ktoś nie mógł takowej funkcji znaleźć

pozdrawiam
Go to the top of the page
+Quote Post
BaN
post
Post #4





Grupa: Zarejestrowani
Postów: 158
Pomógł: 43
Dołączył: 9.11.2007

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


Cytat(qrcze_pieczone @ 25.10.2010, 18:18:54 ) *
wookieb trafność twojej rady zwaliła mnie z krzesła (IMG:style_emoticons/default/winksmiley.jpg)

Ale on Ci dobrze radził, nie ma zbytnio sensu tworzyć funkcji użytkownika, skoro już takie funkcje są, należy skorzystać tylko z dwóch:
  1. SELECT DAYOFMONTH(LAST_DAY('2009-02-01'))



Go to the top of the page
+Quote Post
qrcze_pieczone
post
Post #5





Grupa: Zarejestrowani
Postów: 59
Pomógł: 2
Dołączył: 13.04.2007

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


BaN ja zanim zadałem to pytanie przejrzałem spis funkcji przetwarzania daty w MySQL
i żadna nie miała w opisie że zwraca liczbę dni dla danego miesiąca,
a nie miałem czasu kombinować ani analizować, więc zadałem to pytanie
a po radzie "wookieb" tak się trochę podirytowałem, że w końcu przekombinowałem (IMG:style_emoticons/default/winksmiley.jpg)

Zadałem proste pytanie ( w końcu do tego jest to forum) i oczekiwałem prostej odpowiedzi takiej jak od ciebie

dziękuję i pozdrawiam
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: 23.08.2025 - 22:26