Double colon `::` notation in SQL

It varies based on RDBMS, but if I guess right, that’s PostgreSQL, in which case the :: converts a.dc to a date type of date.

In other flavors…

In MS SQL Server 2000:

For built-in user-defined functions
that return a table, the function name
must be specified with a leading
double colon (::) to distinguish it
from user-defined functions that are
not built-in. It also must be
specified as a one-part name with no
database or owner qualifications. For
example: SELECT * FROM
::fn_helpcollations() b.. For built-in
user-defined functions that return a
scalar value, the function name must
be specified as a one-part name (do
not specify database or owner). Do not
specify a leading double colon (::).

In MS SQL Server 2005:

Double-colons are no longer required
for UDFs that return a table.

However…

Double-colons are required in SQL
Server 2005 when granting permissions
on schemas, certificates, endpoints,
and a few other securables.

As well as…

When using User-Defined Types, static
methods of the type must be called
using the double-colon syntax.

Sources: BOL and Kalen Delaney’s Blog

Leave a Comment