Es variiert je nach RDBMS, aber wenn ich richtig denke, ist das PostgreSQL, in diesem Fall der ::
konvertiert a.dc
zu einem Datumstyp von date
.
In anderen Geschmacksrichtungen...
In MS SQL Server 2000:
Bei integrierten benutzerdefinierten Funktionen, die eine Tabelle zurückgeben, muss der Funktionsname mit einem führenden Doppelpunkt (::) angegeben werden, um ihn von nicht integrierten benutzerdefinierten Funktionen zu unterscheiden. Er muss auch als einteiliger Name ohne Datenbank- oder Eigentümerqualifikation angegeben werden. Beispiel:SELECT * FROM::fn_helpcollations() b.. Für eingebaute, benutzerdefinierte Funktionen, die einen Skalarwert zurückgeben, muss der Funktionsname als einteiliger Name angegeben werden (keine Datenbank oder Eigentümer angeben). Geben Sie keinen führenden doppelten Doppelpunkt (::) an.
In MS SQL Server 2005:
Für UDFs, die eine Tabelle zurückgeben, sind keine Doppelpunkte mehr erforderlich.
Allerdings...
Doppelte Doppelpunkte sind in SQLServer 2005 erforderlich, wenn Berechtigungen für Schemas, Zertifikate, Endpunkte und einige andere sicherungsfähige Elemente gewährt werden.
Sowie...
Bei der Verwendung von benutzerdefinierten Typen müssen statische Methoden des Typs mit der Doppelpunkt-Syntax aufgerufen werden.
Quellen:BOL und Kalen Delaneys Blog