Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Następny i poprzedni wpis w bazie według daty
user123
post
Post #1





Grupa: Zarejestrowani
Postów: 231
Pomógł: 2
Dołączył: 2.08.2006
Skąd: Poznań

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


Witam,

w jaki sposób można na podstawie daty:
19:20:13 2010-08-06
odnaleźć poprzedni i następny wpis za pomocą zapytania postgresie.
Datę jak i godzinę trzymam w tabeli w polu tabelka_data(DATE), tabelka_czas (TIME).
(IMG:style_emoticons/default/smile.gif)

Ten post edytował user123 7.08.2010, 22:10:40
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
cojack
post
Post #2





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

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


Ja wymyśliłem tylko coś takiego:

  1. cojack=> \d+ test
  2. TABLE "public.test"
  3. COLUMN | Type | Modifiers | Storage | Description
  4. ------------------+-----------------------------+---------------------------------------------------+----------+-------------
  5. id | integer | NOT NULL DEFAULT NEXTVAL('test_id_seq'::regclass) | plain |
  6. tresc | text | | extended |
  7. datadodania | timestamp without time zone | NOT NULL | plain |
  8. dataaktualizacji | timestamp without time zone | DEFAULT now() | plain |
  9. Has OIDs: no
  10.  
  11.  
  12.  
  13. cojack=> SELECT * FROM test;
  14. id | tresc | datadodania | dataaktualizacji
  15. ----+-----------+----------------------------+----------------------------
  16. 1 | terefere | 2010-08-09 19:58:47.321543 | 2010-08-09 19:58:47.321543
  17. 2 | terefere2 | 2010-08-09 19:58:50.654082 | 2010-08-09 19:58:50.654082
  18. 3 | terefere3 | 2010-08-09 19:58:53.331668 | 2010-08-09 19:58:53.331668
  19. 4 | terefere4 | 2010-08-09 19:58:56.653892 | 2010-08-09 19:58:56.653892
  20. 5 | terefere5 | 2010-08-09 19:58:59.304039 | 2010-08-09 19:58:59.304039
  21. 6 | terefere6 | 2010-08-09 19:59:02.334028 | 2010-08-09 19:59:02.334028
  22. 7 | terefere7 | 2010-08-09 19:59:05.951644 | 2010-08-09 19:59:05.951644
  23. 8 | terefere8 | 2010-08-09 19:59:09.222648 | 2010-08-09 19:59:09.222648
  24. (8 rows)
  25.  
  26.  
  27.  
  28. SELECT id,
  29. ( SELECT id FROM test AS t2 WHERE t2.datadodania > t1.datadodania ORDER BY datadodania ASC LIMIT 1 ),
  30. ( SELECT id FROM test AS t3 WHERE t3.datadodania < t1.datadodania ORDER BY datadodania DESC LIMIT 1 )
  31. FROM test AS t1 WHERE t1.id = 4;


Może data dodania nie odzwierciedla tego że po polu serial można to zrobić szybciej, ale już po dacie aktualizacji widać to gołym okiem że nie zrobimy to na serialu.

Ten post edytował cojack 10.08.2010, 08:50:29
Go to the top of the page
+Quote Post

Posty w temacie


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: 25.12.2025 - 06:30