Różni się w zależności od RDBMS, ale jeśli dobrze myślę, to jest PostgreSQL, w którym to przypadku ::
konwertuje a.dc
na typ daty date
.
W innych smakach...
W MS SQL Server 2000:
W przypadku wbudowanych funkcji zdefiniowanych przez użytkownika, które zwracają tabelę, nazwa funkcji musi być podana z dwukropkiem na początku (::), aby odróżnić ją od funkcji zdefiniowanych przez użytkownika, które nie są wbudowane. Musi być również określona jako jednoczęściowa nazwa z brakiem bazy danych lub uprawnieniami właściciela. Na przykład:SELECT * FROM::fn_helpcollations() b.. W przypadku wbudowanych funkcji zdefiniowanych przez użytkownika, które zwracają wartość ascalar, nazwa funkcji musi być podana jako nazwa jednoczęściowa (nie należy podawać bazy danych ani właściciela). Nie podawaj wiodącego podwójnego dwukropka (::).
W MS SQL Server 2005:
Podwójne dwukropki nie są już wymagane dla UDF, które zwracają tabelę.
Jednak...
Podwójne dwukropki są wymagane w SQLServer 2005 podczas przyznawania schematów uprawnień, certyfikatów, punktów końcowych i kilku innych elementów zabezpieczających.
Jak również...
Podczas korzystania z typów zdefiniowanych przez użytkownika, statyczne metody danego typu muszą być wywoływane przy użyciu składni z podwójnymi dwukropkami.
Źródła:Blog BOL i Kalen Delaney