Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wiersze z danego miesiąca
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
brass
Mam w tabeli pole:

  1. datetime timestamp without time zone


Jak pobrać wszystkie rekordy z przedzoału jednego miesiąca, np 12-2008.
skowron-line
  1. SELECT * FROM tbl_name WHERE MONTH( DATA ) = '12' AND YEAR( DATA ) = '2008'

EDIT: do postu. Poniżej racja nie zauważyłem że to PostgeSQL
http://developer.postgresql.org/pgdocs/pos...s-datetime.html
zegarek84
nie jest podana baza danych i powyższe zapytanie nie w każdej bazie zadziała... można jeszcze (tak ogólnie):
  1. SELECT * FROM DATA WHERE DATA.DATA BETWEEN '2009-12-01' AND '2009-12-31'

i na kilka innych sposobów typowych dla konkretnej bazy danych
brass
Baza to postgres 8.2

Pierwsze zapytanie nie działa, ponieważ nie ma funkcji month. A drugie jest do niczego bo miesiące mają różną liczbę dni.
zegarek84
bazy postgres 8.2 dokładnie nie znam więc co do niuansów nie odpowiem ale co do stwierdzenia:
Cytat
A drugie jest do niczego bo miesiące mają różną liczbę dni.

a to z php nie można skożystać wprowadzając graniczne dni?? czy może się nie chce ;p

  1. <?php
  2. $mies=12;
  3. $rok=2009;
  4. echo date('Y-m-d',mktime (0,0,0,$mies,1,$rok)).'<br>';
  5. echo date('Y-m-d',mktime (0,0,0,$mies+1,0,$rok)).'<br>';
  6. $zapytanie="SELECT * FROM data where data.data between '".date('Y-m-d',mktime (0,0,0,$mies,1,$rok))."' and '".date('Y-m-d',mktime (0,0,0,$mies+1,0,$rok))."'";
  7. ?>

i tą zmienną $zqapytanie poprostu urzyj tam gdzie potrzebujesz i jeśli jakaś funkcja działa a ma jakieś ograniczenia które da się obejść a nic lepszego nie mozna wykożystać to się kożysta z tych rozwiązań ;p bo nie jest argumentem tutaj:
Cytat
A drugie jest do niczego bo miesiące mają różną liczbę dni.

więc albo ma się gdzieś w zakładkach stronke z listą zapytań do konkretnej bazy danych z których sie kożysta albo robi sie to co się może ^^ (ale chyba każda baza danych ma swoje funkcje operacji na datach winksmiley.jpg)
EDIT
tu masz jedno z rozwiązań a w drugim poście link do funkcji dat na tej bazie danych wiec albo pomysl i skożystaj z konkretnych funkcji operacji na dacie w tej bazie albo z rozwiązania z wykozystaniem php winksmiley.jpg
Zbłąkany
@brass:
  1. SELECT EXTRACT(MONTH FROM TIMESTAMP '2001-02-16 20:38:40');

Więcej informacji znajdziesz tutaj
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-2025 Invision Power Services, Inc.