Men det gør de ikke. NULL
er en syntaks-bekvemmelighed når det bruges som bundet af et område, mens -infinity
/ infinity
er faktiske værdier i områdets domæne. Abstrakte værdier betyder mindre/større end enhver anden værdi, men værdier ikke desto mindre (som kan inkluderes eller udelukkes).
Også NULL
virker for alle områdetype, mens de fleste datatyper ikke har specielle værdier som -infinity
/ infinity
. Tag integer
og int4range
for eksempel.
For en bedre forståelse kan du overveje tråden i pgsql-general, der en_hest leveret :
Det inkluderer date
, selvfølgelig (som Adrian kommenterede
):
test=> SELECT NULL::date, pg_typeof(NULL::date);
date | pg_typeof
------+-----------
| date
(1 row)
Men prøver at diskutere NULL
som værdi (når det bruges som bundet af et interval) er en vildledende tilgang til at begynde med. Det er ikke en værdi.
Igen, NULL
behandles ikke som værdi i områdets domæne. Det tjener bare som praktisk syntaks at sige:"ubundet". Ikke mere end det.