Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Odejmowanie dat i tworzenie komorki wiek, Tworzenie komorki bliczeniowej
art
post 25.01.2005, 06:44:47
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 31.08.2003

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


Witam!

Mam tabele w której miedzy innymi znajduje się pole "data_urodzenia" chcialbym aby w zapytaniu stworzylo mi się nowe pole (obliczeniowe) wiek ... czyli poprostu chce obliczyc wiek danej osoby na podstawie posiadnej daty urodzenia... zasade znam mniej wiecej tworzeni w zapytaniu pol obliczeniowego jednak nie moge nigdzie znalesc funkcji ktora odejmuje daty sad.gif .. prosze o pomoc i jkis przyklad (oczywiscie zapytanieto potzrebne mi jets do skryptu php)
Go to the top of the page
+Quote Post
behemot
post 25.01.2005, 07:24:01
Post #2





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 17.07.2003
Skąd: Tarnów/Kraków

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


Może tutaj znajdziesz odpowiedz:

http://dev.mysql.com/doc/mysql/en/date-calculations.html


--------------------
Pozdrawiam,
kuba
Go to the top of the page
+Quote Post
art
post 25.01.2005, 08:57:12
Post #3





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 31.08.2003

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


OK Dzieki znalazlem tm to czego potrzebowalem... ale pojawil sie w związku z tym kolejny problem....

To moje zapytanie
  1. SELECT konta.plec,konta.data_urodzenia,fotki.*,
  2. (YEAR(CURDATE())-YEAR(konta.data_urodzenia)) - (RIGHT(CURDATE(),5)<RIGHT(konta.data_urodzenia,5)) AS wiek
  3. FROM fotki INNER JOIN konta ON fotki.idusr=konta.id
  4. WHERE fotki.pub='y' AND wiek=17 LIMIT 30


zapytanie ldnie oblicza mi ten wiek i tworzy kolumne wiek ale po doaniu w WHERE warunku wiek=17 wylatuje taki błąd: Unknown column 'wiek' in 'where clause'
czyzbym w jakis zly sposob owolywal sie do stworzonej kolumny wiek? czy do tych klumn obliczeniowych tzreba sie jkos specjlnie odwolywac? moze gdzie indziej jest w moim zapytaniu jakis blad?
Go to the top of the page
+Quote Post
Vertical
post 25.01.2005, 10:06:55
Post #4





Grupa: Zarejestrowani
Postów: 848
Pomógł: 0
Dołączył: 7.07.2004
Skąd: Wrocław

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


Musisz określić nazwę tabeli
  1. ...WHERE fotki.pub='y' AND [tabela].wiek=17 LIMIT 30
Go to the top of the page
+Quote Post
art
post 25.01.2005, 11:59:18
Post #5





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 31.08.2003

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


No wlasnie mam z tym okresleniem nazyw spory problem bo jak widac w zapytaniu tam sklejane sa 2 tabele i dotkowo jescze dochdzi to pole wyliczeniowe wiek... i wpisywalem nazwe jednej tabeli i drugiej ale dalej nie dziala sad.gif
Go to the top of the page
+Quote Post
behemot
post 25.01.2005, 13:56:43
Post #6





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 17.07.2003
Skąd: Tarnów/Kraków

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


Z tego co mi wiadomo, w klauzuli where nie mozna uzywac aliasow do kolum.

A sprobuj tak:

  1. SELECT konta.plec,konta.data_urodzenia,fotki.*,
  2. (YEAR(CURDATE())-YEAR(konta.data_urodzenia)) - (RIGHT(CURDATE(),5)<RIGHT(konta.data_urodzenia,5)) AS wiek
  3. FROM fotki INNER JOIN konta ON fotki.idusr=konta.id
  4. WHERE fotki.pub='y' HAVING wiek=17 LIMIT 30


Glowy nie dam bo nie sprawdzalem ale na podbnym zapytaniu dzialalo.
Mozesz zamiast wiek wstawic wzór go oblicajacy.


--------------------
Pozdrawiam,
kuba
Go to the top of the page
+Quote Post
beel
post 26.04.2007, 21:46:16
Post #7





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 20.04.2007

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


Hmmm a ja to czytałem ale nie moge dojść jak ma być, mam tak:

Który ze zmarłych prezydentów żył najdłużej?

tabela president i pola birth oraz death jak odjac w ten sposob: death-birth, data jest w postaci 1986-02-25
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 28.06.2025 - 04:07