/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
PostgreSQL og interval?
Fra : news.tele.dk


Dato : 02-07-04 13:33

Hej alle


for det første - hvad kan man bruge interval() til? og dernæst hvordan
virker det!

I min "Practical PostgreSQL" fra O'Reilly står der et eksempel:
SELECT interval('21 years 8 days');

men hvis jeg eksekverer strengen i psql på test-databasen får jeg flg. fejl:
--------------------------------------------------------------
testdb=# SELECT interval('2 days');
ERROR: syntax error at or near "'2 days'" at character 17
--------------------------------------------------------------

hvad er der galt?

jeg kører en gentoo 2004.0 med PostgreSQL 7.4.2 og bogen omhandler
PostgreSQL 7.3.x!

jeg overvejede om man kunne anvende interval for et SELECT statement fra
en tabel?



Med venlig hilsen

Preben Holm

 
 
Troels Arvin (02-07-2004)
Kommentar
Fra : Troels Arvin


Dato : 02-07-04 13:58

On Fri, 02 Jul 2004 14:33:07 +0200, news.tele.dk wrote:

> for det første - hvad kan man bruge interval() til?

I hvertfald ikke som du gør det
(Parenteserne er forkerte; der er ikke tale om en funktion.)

INTERVAL kan smækkes foran en streng for at instruere PostgreSQL i at
opfatte strengen som et tidsinterval:
INTERVAL '2 days'

> hvordan virker det!

INTERVAL datatypen kan lægges til eller fratrækkes tidspunkter.

> testdb=# SELECT interval('2 days');
> ERROR: syntax error at or near "'2 days'" at character 17

Som nævnt ovenfor: Det hedder

SELECT INTERVAL '2 DAYS';

> jeg overvejede om man kunne anvende interval for et SELECT statement fra
> en tabel?

Det kan man bestemt, hvis man altså arbejder med intervaller.


I øvrigt har PostgreSQL en alternativ syntaks til at forcere tolkning af
strenge, men jeg mener ikke, at den følger SQL-standarden:
SELECT '2 DAYS'::INTERVAL

--
Greetings from Troels Arvin, Copenhagen, Denmark


Preben (04-07-2004)
Kommentar
Fra : Preben


Dato : 04-07-04 22:35

>>for det første - hvad kan man bruge interval() til?
>
>
> I hvertfald ikke som du gør det
> (Parenteserne er forkerte; der er ikke tale om en funktion.)
>
> INTERVAL kan smækkes foran en streng for at instruere PostgreSQL i at
> opfatte strengen som et tidsinterval:
> INTERVAL '2 days'

Ahh, O'Reilly skulle have nogle smæk for at udgive sådan en gang bræk så...



>>jeg overvejede om man kunne anvende interval for et SELECT statement fra
>>en tabel?
>
>
> Det kan man bestemt, hvis man altså arbejder med intervaller.

Ehh, det jeg gerne ville kunne, var at have et dato-felt og udvælge alle
datoer der er i et bestemt interval - det kan jo klares med en dobbelt
ulighed, men det ville jo være smart at kunne lave det med intervaller -
men hvordan skal jeg så greje den? Eller er det smarteste blot at bruge
en dobbelt ulighed.


.... WHERE dato > date1 AND dato < dato2

Jeppe Uhd (05-07-2004)
Kommentar
Fra : Jeppe Uhd


Dato : 05-07-04 09:19

Preben wrote:
> Ehh, det jeg gerne ville kunne, var at have et dato-felt og udvælge
> alle datoer der er i et bestemt interval - det kan jo klares med en
> dobbelt ulighed, men det ville jo være smart at kunne lave det med
> intervaller - men hvordan skal jeg så greje den? Eller er det
> smarteste blot at bruge
> en dobbelt ulighed.

Det er ikke lige det INTERVAL er beregnet på

Enten dobbelt ulighed eller BETWEEN hvis PG har den...

.... WHERE dato BETWEEN dato1 AND dato2

> ... WHERE dato > date1 AND dato < dato2

--
MVH Jeppe Uhd - NX http://nx.dk
Webhosting for nørder og andet godtfolk



Søg
Reklame
Statistik
Spørgsmål : 177472
Tips : 31964
Nyheder : 719565
Indlæg : 6408310
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste