[PostgreSQL] funkcja Year z MySQL'a
Kamil Zeno - 25-01-2007 00:01
[PostgreSQL] funkcja Year z MySQL'a
Witam
Otrzymałem polecenie przerobienia programu, który działał do tej pory z MySQL'em, a teraz ma działać z PostgreSQL'em. W kodzie jest dużo (bardzo dużo) zapytań sql'owych, w których występują funkcje wyciągające rok i miesiąc z pola typu date: ...... where year(data)=:0...... Wiem, że wystarczy przerobić słowo year na date_part('year', i sprawa jest załatwiona. Zwykłe replace mnie tutaj nie urządza, gdyż w samym kodzie istnieją zmienne (i inne rzecz) o nazwie year i nieźle namieszałbym w kodzie.Ogólnie rzemiosło. Chciałbym się zapytać Państwa jak stworzyć funkcję w postgresie o nazwie year, która wyciągałaby z daty podanej jako parametr rok. Nie wiem jak się do tego zabrać. Utknąłem na samym początku, gdy się okazało, że typ parametru musi być taki sam jak typ zwracanego wyniku (a tutaj parametr jest datą, a wynik zawracany jest integerem).
Kamil.
Michal Jankowski - 25-01-2007 00:01
"Kamil Zeno" <niepodajetutajmaila@nic.pl> writes:
> ..... where year(data)=:0...... > Wiem, że wystarczy przerobić słowo > year > na > date_part('year', > i sprawa jest załatwiona. Zwykłe replace mnie tutaj nie urządza, gdyż > w samym kodzie istnieją zmienne (i inne rzecz) o nazwie year i nieźle
I te inne zmienne występują w pozycji bezpośrednio przed nawiasem otwierającym? No powiedzmy....
> Chciałbym się zapytać Państwa jak stworzyć funkcję w postgresie > o nazwie year, która wyciągałaby z daty podanej jako parametr > rok. Nie wiem jak się do tego zabrać. Utknąłem na samym początku, > gdy się okazało, że typ parametru musi być taki sam jak typ zwracanego
Ktoś cię oszukał 8-).
> wyniku (a tutaj parametr jest datą, a wynik zawracany jest integerem).
Zawracana to jest Wisła 8-).
A funkcja może wyglądać jakoś tak:
create function year(date) returns integer as $$ select date_part('year',$1)::integer; $$ language sql;
MJ
Kamil Zeno - 25-01-2007 00:01
Użytkownik "Michal Jankowski" <michalj@fuw.edu.pl> napisał w wiadomości news:2n7ivca5sg.fsf@ccfs1.fuw.edu.pl... [...]
Dziękuję :) Proste jak świat :) Pięknie działa. A oszukali mnie pgadmin i sprawdzanie pisowni w OE :)
Kamil.
Albo PostgreSQL, albo nic. Albo pytać na pl.comp.bazy-danych, albo nigdzie.
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?=
[mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?=
[MySQL] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?=
[mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?=
[MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?=
[MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?=
Gdzie MySQL 4.1, a gdzie 5.0?
[MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?=
[MS SQL] "set names" (mySQL) w MS SQL
[mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
zanotowane.pldoc.pisz.plpdf.pisz.plred-hacjenda.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|